zoukankan      html  css  js  c++  java
  • SpringBoot学习记录:@Cacheable不起作用 -->原因:Shiro + @Cache整合

    SpringBoot学习记录:@Cacheable不起作用 -->原因:Shrio + @Cache整合

    问题描述:

    1、在使用shiro的项目中,整合Cache,@Cacheable失效

    2、去掉ShiroConfig后,@Cacheable能够最长使用,其他注解也OK

    问题原因:

    @Cacheable ,当使用ehcache时,autoconfig机制会根据配置文件自动去初始化bean

    而shiroConfig在@Configuration构造时,也会去初始化ehcache ,项目启动会产生如下异常

    解决方法:

    realm原始代码(错误):

    public class UserRealm extends AuthorizingRealm {
        @Autowired
        private AdminService adminService;
        @Autowired
        private CadreService cadreService;
        @Autowired
        private ParticipantService participantService;
        @Autowired
        private VoteService voteService;
    
        protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {……}
    
        //认证
        @Override
        protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {……}
    }

    在realm的自动注入下加@Lazy注解,问题解决

    public class UserRealm extends AuthorizingRealm {
        @Autowired
    @Lazy
    private AdminService adminService; @Autowired
    @Lazy
    private CadreService caadreService; @Autowired
    @Lazy
    private ParticipantService participantService; @Autowired
    @Lazy
    private VoteService voteService; protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {……} //认证 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {……} }
  • 相关阅读:
    建站两个月,说说我的想法
    我见过的郭弃疾先生(兰亭集势CEO)
    C#数组和集合互相转换的几种方法的效率分析
    (五)React Ant Design Pro + .Net5 WebApi:后端环境搭建Autofac注入+ 泛型仓储
    关于C++中对私有的测试总结
    uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型(转)
    GDB调试
    linux删除乱码文件
    转:C++ nan
    vim
  • 原文地址:https://www.cnblogs.com/itcod/p/12555314.html
Copyright © 2011-2022 走看看