没有xml配置的java配置中的Spring Boot aop tx建议

时间:2018-01-25 19:29:14

标签: spring spring-boot spring-aop spring-transactions spring-java-config

我有使用Atomikos和JOOQ的Spring启动应用程序(带有多个数据源db1和db2) 我有如下的XML配置,我想将其转换为java配置。

<p>

我已经看到一些stackoverflow问题已经问过这个问题,但它们已经老了,还没有找到任何解决方案。

JavaConfig: Replacing aop:advisor and tx:advice

因此,想要了解所提供的XML配置的精确java配置。

1 个答案:

答案 0 :(得分:0)

我得到的解决方案几乎更接近上面的xml配置。 在下面的解决方案中,我将aop应用于bean名称而不是包内的类。

@Bean(name = "transactionInterceptor")
public TransactionInterceptor transactionInterceptor(PlatformTransactionManager platformTransactionManager) {
    TransactionInterceptor transactionInterceptor = new TransactionInterceptor();
    transactionInterceptor.setTransactionManager(platformTransactionManager);
    Properties transactionAttributes = new Properties();
    transactionAttributes.setProperty("*", "PROPAGATION_REQUIRED,-Throwable");
    transactionAttributes.setProperty("tranNew*", "PROPAGATION_REQUIRES_NEW,-Throwable");
    transactionInterceptor.setTransactionAttributes(transactionAttributes);
    return transactionInterceptor;
}

@Bean
public BeanNameAutoProxyCreator transactionAutoProxy() {
    BeanNameAutoProxyCreator transactionAutoProxy = new BeanNameAutoProxyCreator();
    transactionAutoProxy.setProxyTargetClass(true);
    transactionAutoProxy.setBeanNames("*Service");
    transactionAutoProxy.setInterceptorNames("transactionInterceptor");
    return transactionAutoProxy;
}