SSM开启事务失败的解决方法:
希望在xxService的一个方法里启动事务,添加了事务注解:
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public User updateData(User user){
......
}
applicationContext.xml配置如下
<!--<!– 事务管理器 (JDBC) –>-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--<!– 启动声明式事务驱动 –>-->
<tx:annotation-driven transaction-manager="transactionManager" />
transaction-manager="transactionManager"显示为灰色,鼠标停在上面提示Redundant default attribute value assignment
运行工程报以下错误:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'xxController': Unsatisfied dependency expressed through field 'xxService'; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'xxService' is expected to be of type 'com.xx.service.xxService' but was actually of type 'com.sun.proxy.$Proxy39'
解决方法:
把
<tx:annotation-driven transaction-manager="transactionManager" />
删掉,替换成
<tx:annotation-driven proxy-target-class="true"/>
即可。