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 {……} }
  • 相关阅读:
    算法导论课后习题解析 第六章
    算法导论课后习题解析 第二章
    如果你也是.NET程序员
    查询对象模式
    为什么要面向对象呢
    HTTP强缓存和协商缓存 F
    MFC Dialog改变大小后,控件随之改变方法
    关于C++类型萃取
    docker配置docker
    idea 全局搜索(Ctrl+Shift+F)不能使用解决办法
  • 原文地址:https://www.cnblogs.com/itcod/p/12555314.html
Copyright © 2011-2022 走看看