我已经使用AspectJ将@Transactional添加到非Bean类和非公共方法。但是,我仍然无法使自我成功。
这是我的transcation manager配置类
@Configuration
@EnableTransactionManagement
public class DBConfig {
@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager() {
DataSourceTransactionManager txManager = new DataSourceTransactionManager(DATA_SOURCE);
AnnotationTransactionAspect.aspectOf().setTransactionManager(txManager);
return txManager;
}
}
这是我的加载时weaver配置
@Configuration
@EnableLoadTimeWeaving
public class AspectJConfig implements LoadTimeWeavingConfigurer {
@Override
public LoadTimeWeaver getLoadTimeWeaver() {
return new InstrumentationLoadTimeWeaver();
}
}
这是我的自我调用代码
public class Test {
@Transactional
public void testA() {
testB();
//......
}
@Transactional(propagation = Propagation.NEVER)
public void testB() {
//......
}
}
当我调用testA时,预计会抛出异常,因为我已将传播定义为NEVER。然而,实际上什么都没发生。
所以有人会帮助我吗???