springboot+shiro+mybatis整合发现部分功能事务没有被spring管理
来源:互联网 发布:淘宝商家添加商品 编辑:程序博客网 时间:2024/06/18 15:40
最近写一个后台管理的开源项目,发现报错事务没有回滚,折磨了我两天发现其他功能事务都是好用的,只有关于用户的那部分事务没有被spring管理,最后发现在shiro在启动配置的时候Spring还没启动,因为是Shiro先启动的。
在百度了好久也没解决办法,好多都说直接用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就可以了
@Componentpublic 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); }}
解决办法来源于http://keanu.tumblr.com/post/136866599865/%E8%AE%93-shiro-realm-%E4%B9%9F%E8%83%BD%E4%BD%BF%E7%94%A8%E5%88%B0-spring-%E7%9A%84-transaction,需要翻墙可以访问
阅读全文
1 0
- springboot+shiro+mybatis整合发现部分功能事务没有被spring管理
- Spring mvc + MyBatis 整合Shiro
- Spring+SpringMVC+mybatis+easyui整合实例(三)spring mvc整合及mybatis事务部分
- Spring+SpringMVC+mybatis+easyui整合实例-----spring mvc整合及mybatis事务部分
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例
- Spring + mvc,Mybatis整合 (含事务配置,分页功能)
- Spring + mvc,Mybatis整合 (含事务配置,分页功能)
- SpringBoot +shiro+mybatis plus+spring +redis
- spring 管理 mybatis 事务
- shiro +spring + spring mvc+ mybatis整合
- shiro +spring + spring mvc+ mybatis整合
- 转载:Spring Boot (十四):springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- KEIL工程.c文件上面有减号标志
- 查看linux中某个端口(port)是否被占用
- vs2015+Qt5.7编译生成的程序在xp中运行提示不是有效的win32程序解决方案
- Day2-7.Methods,arguments,and return values
- 必须要熟悉的 Linux 命令
- springboot+shiro+mybatis整合发现部分功能事务没有被spring管理
- 免费的天气接口(满足你的大部分需求)
- 正交基与非正交基在信号表达上的区别
- poj 1012 小白算法练习 Joseph 约瑟夫环 打表
- 中企动力与重庆悦之恋食品同行 领跑全网门户平台
- rnn python实现
- 关于windows10的使用
- StringBuffer,StringBuilder以及ArrayList等集合类的使用场景
- C++每日一题「剔除关系数」