在Spring Boot中进行事务配置后,AspectJ无法正常工作

时间:2015-02-03 23:56:39

标签: spring spring-boot aspectj spring-transactions

首先我遇到了交易不能正常工作的问题,所以我将配置从@EnableTransactionManagement更新为@EnableTransactionManagement(proxyTargetClass=true),但在更新后,这个错误在启动时被抛出。

enter image description here

在评论与AspectJ相关的所有代码后,错误消失,事务处理完美,但我缺少AspectJ函数。

我试图将@EnableTransactionManagement(proxyTargetClass=true)替换为@EnableTransactionManagement(mode=AdviceMode.PROXY)@EnableTransactionManagement @EnableLoadTimeWeaving,他们都没有让我使用AspectJ,使用调试器我可以看到建议根本没有执行

AppConfig.java

@EnableAutoConfiguration
@ComponentScan(basePackages = { "com.geopro" })
@EnableJpaRepositories(basePackages = { "com.geopro.repositories" })
@EntityScan(basePackages = { "com.geopro.entities" })
@EnableTransactionManagement(proxyTargetClass=true)//(mode=AdviceMode.ASPECTJ)//
public class AppConfig {
    @Bean
    public HibernateJpaSessionFactoryBean sessionFactory(EntityManagerFactory emf) {
         HibernateJpaSessionFactoryBean factory = new HibernateJpaSessionFactoryBean();
         factory.setEntityManagerFactory(emf);
         return factory;
    }
}

1 个答案:

答案 0 :(得分:2)

故事的道德是永远不要在同一个类中混合交易和AspectJ功能,我已经了解到,交易在其内部AOP使用的方式很难,它的AOP不能很好地与用户AOP。