我做了一个基本的javaweb项目,并在上面添加了spring事务配置,但没有效果。在此之前,它工作得很好。我在网上搜索了很多页面,那些配置和我的一样。
预期的结果是不会插入任何内容,但已插入一条记录。
请帮我找出问题所在,谢谢
我的服务实现路径is:com.lidaning.sys.user.service.UserInfoServiceImpl
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="txPointcut" expression="execution(* com.lidaning.sys.user.service..*.*(..))" />
<aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice"/>
</aop:config>
@Override
public void insertUser(UserInfo u) {
u.setId("1");
u.setName("lidaning");
u.setPassword("***");
userInfoDao.insertUser(u);
userInfoDao.insertUser(u); //occur exception
}发布于 2018-12-29 11:00:44
我知道原因了。由于spring加载了两次serviceBean (spring、springMVC),导致服务失去了事务的特性。当我将控制器从应用程序上下文中分离出来并将其放入springMVC中时,它就可以工作了。
https://stackoverflow.com/questions/53955001
复制相似问题