spring配置文件中正确配置了aop,而事务以及动态切换数据源未有生效。
1、 在主容器中(spring-base.xml),将Controller的注解过滤掉
<context:component-scan base-package="com">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
2 、而在spring-mvc.xml配置文件中将Service注解给去掉(注:@Service 、@Repository)
<context:component-scan base-package="com">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository" />
因为spring的context是父子容器,所以会产生冲突,Controller会进入父类扫描装配,而此时的Service还没有进行事务装配,获得的将是原样的Service ,最后才是applicationContext.xml中的扫描设备进行事务装配.
3、确认注解是写在接口上面还是实现类上面,以便读取注解的值。
类:Class<?> clazz = target.getClass();
接口:Class<?> clazz[] = target.getClass().getIntegerfaces();