spring+shrio 用户表事务不起作用问题
首先说一下,druid数据源真是非常强大,可以配置sql监控,如果不是它,我还不能发现有些对数据库操作没有走事务问题.
大家看下问题
很明显, 有三条sql是没有走事务的, 检查发现这三条都是在shiro Reaml中的sql,
检查发现, shiro 加载比较早, Reaml中配置的service加载完成后才会加载spring的bean, 事务注解等, 所以此service是配置事务注解是不起作用的,
解决方案:
1, Reaml中不配置service, 配置dao, 但问题不能完美解决, 还是有部分sql不走事务.
2, 使用懒加载方式, @Lazy注解, 在第一次使用时加载, 可以完美解决.
在看下sql监控,
全部都走了事务.