Spring Aop 失效的一种可能原因
一、问题描述
1.@Transactional(propagation = Propagation.REQUIRES_NEW)失效并没有开启新的事务
2.自定义注解 @DataSource(SLAVE1) 动态数据源切换失效
二、分析和定位原因
一、示例代码
@Service
public class TestAopInvalid {
@DataSource
public void a() {
b();
TestAopInvalid bean = SpringContextHolder.getBean(TestAopInvalid.class);
bean.c();
}
@DataSource
public void b() {
}
@DataSource
public void c() {
}
}
@Target({
ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface DataSource {
String value() default "";