springboot+shiro+mybatis整合发现部分功能事务没有被spring管理
2017-08-03 17:35
1281 查看
最近写一个后台管理的开源项目,发现报错事务没有回滚,折磨了我两天发现其他功能事务都是好用的,只有关于用户的那部分事务没有被spring管理,最后发现在shiro在启动配置的时候Spring还没启动,因为是Shiro先启动的。
在百度了好久也没解决办法,好多都说直接用dao调用,还有提高spring启动的优先级,这些都试过,没用!!然后Google发现一个靠谱的解决办法。
解决办法:
在shiro启动的时候不设置自己的realm,然后在spring启动完成后再设置自己的realm。
所以需要写一个监听器,在spring初始化完成后设置自己的realm就可以了
![](https://oscdn.geek-share.com/Uploads/Images/Content/201708/34baec974cf943f80ccee48768f4b633)
解决办法,需要翻墙可以访问
在百度了好久也没解决办法,好多都说直接用dao调用,还有提高spring启动的优先级,这些都试过,没用!!然后Google发现一个靠谱的解决办法。
解决办法:
/** * 声明SecurityManager * @return */ @Bean(name="securityManager") public SecurityManager securityManager() { DefaultWebSecurityManager manager = new DefaultWebSecurityManager(); //manager.setRealm(authorityRealm); manager.setCacheManager(new MemoryConstrainedCacheManager()); return manager; }
在shiro启动的时候不设置自己的realm,然后在spring启动完成后再设置自己的realm。
所以需要写一个监听器,在spring初始化完成后设置自己的realm就可以了
@Component public class SpringEventListener { @EventListener public void handleContextRefresh(ContextRefreshedEvent event) { ApplicationContext context = event.getApplicationContext(); DefaultWebSecurityManager manager = (DefaultWebSecurityManager) context.getBean("securityManager"); AuthorizingRealm realm = (AuthorizingRealm) context.getBean("authorityRealm"); realm.setCredentialsMatcher(new CustomCredentialsMatcher()); manager.setRealm(realm); } }
解决办法,需要翻墙可以访问
相关文章推荐
- springboot+shiro+mybatis整合发现部分功能事务没有被spring管理
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- spring boot mybatis 整合shiro简单实现登陆权限管理
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- spring boot整合shiro后,部分注解(Cache缓存、Transaction事务等)失效的问题
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- springboot整合shiro-登录认证和权限管理
- SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)
- maven项目 spring-boot 整合 mybatis 实现查询功能demo
- springboot mybatis 事务管理
- java鬼混笔记:springboot 9、springboot整合mybatis加上分页功能
- springboot整合shiro-登录认证和权限管理
- Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之四 vue 整合Element UI
- springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- SpringBoot学习:整合shiro(验证码功能和登录次数限制功能)
- spring整合 mybatis 事务管理不生效原因
- SpringCloud SpringBoot mybatis 分布式微服务(十八)Spring Boot中的事务管理