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

在SSM项目中配置AOP时遇到创建bean的错误,经过排查发现并非配置、缺少依赖或版本冲突导致。关键问题在于使用了@Autowired注解并注入了实现类而非接口,导致JDK动态代理失败。解决方法是确保注入的是接口而非实现类。同时,AOP相关依赖包括aspectjrt.jar、aspectjweaver.jar和aopalliance-1.0.jar。事务管理器和通知的配置也应正确设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

非常头疼的一个问题 ,一直以为是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>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值