SSM配置AOP后出现的错误creating bean 错误 已解决

时间:2024-05-19 14:18:24

SSM配置AOP后出现的错误creating bean 错误 已解决

非常头疼的一个问题 ,一直以为是aop配置出错 ,找资料 改配置怎么改都不对,搜了好久都没解决。

最后新建了一个项目才发现了这个问题 

不是配置出错,也不是少包,不是版本冲突

竟然是:。。。

@autowired那里有问题,因为AOP是基于jdk动态代理的  应该注入接口不应注入实现类

因为没有注入接口jdk动态代理失败没有生成bean

而报的这个错误   谨记

网上的其他人说的大部分都是包不全 aop的包要注意基本就是这三个:

aspectjrt.jar

aspectjweaver.jar

aopalliance-1.0.jar

主要还是看aop的配置是否出错

<!-- 事务管理器-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource" />
</bean>


<!-- 通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 传播行为 -->
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="ins*" propagation="REQUIRED" />
<tx:method name="*Add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="*Del*" propagation="REQUIRED" />
<tx:method name="emp*" propagation="REQUIRED" />
<tx:method name="upd*" propagation="REQUIRED" />
<tx:method name="*Upd" propagation="REQUIRED" />
<tx:method name="sel*" propagation="SUPPORTS" read-only="true" />
<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>
</tx:advice>
<!-- 切面 -->
<aop:aspectj-autoproxy proxy-target-class="true"/><!-- 代理方式true类的方式 false接口 -->
<aop:config>
        <aop:pointcut id="serviceMethod" expression="execution(* com.sccy.hr.service.*.*(..)) 
        || execution(* com.sccy.hr.base.service.*.*(..))"/>
        <!-- 将事务增强与切入点组合(织入事务切面) -->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
    </aop:config>