Spring Boot 集成 Apache Shiro 增加 Cache 的设置

Spring Boot 集成 Apache Shiro 增加 Cache 的设置

  1. 上边我们说过如何进行 SpringBoot 集成 Apache Shiro
  2. Spring Boot 集成 Apache Shiro : https://blog.csdn.net/Roobert_Chao/article/details/89971828
  1. 在 pom.xml 文件中加入 缓存的 依赖。
 <!--开启 cache 缓存-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- ehcache 缓存 -->
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
</dependency>
<!-- shiro-ehcache-->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-ehcache</artifactId>
    <version>1.4.0</version>
</dependency>
  1. 配置管理 cache 的管理。
    【EhcacheConfig 】
@Bean
public EhCacheManagerFactoryBean ehCacheManagerFactoryBean() {
    EhCacheManagerFactoryBean cacheManagerFactoryBean = new EhCacheManagerFactoryBean();
    cacheManagerFactoryBean.setShared(true);		// 设置共享
    return cacheManagerFactoryBean;
}

【在 ShiroConfig 做修改】

@Bean
public EhCacheManager ehCacheManager(){
    EhCacheManager cacheManager = new EhCacheManager();
    // cacheManager.setCacheManagerConfigFile("classpath:ehcache.xml");
    cacheManager.setCacheManager(cacheManager);
    return cacheManager;
}

 @Bean
 public SecurityManager securityManager() {
     DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
     securityManager.setRealm(myShiroRealm());
     securityManager.setCacheManager(ehCacheManager);
     return securityManager;
 }

@Bean
public MyShiroRealm myShiroRealm() {
    MyShiroRealm myShiroRealm = new MyShiroRealm();
    myShiroRealm.setCacheManager();
    myShiroRealm.setCredentialsMatcher(credentialsMatcher());   // 设置密码的对比
    return myShiroRealm;
}

@Bean
public SecurityManager securityManager() {
    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
    securityManager.setRealm(userRealm());
    securityManager.setCacheManager(ehCacheManager());
    return securityManager;
}
  1. 修改 MyShiroRealm 类,添加 @Lazy 注解延迟注入 LoginService 中。
    在这里插入图片描述
    添加 @Lazy 注解,否则会导致该 LoginService 里的 @Cacheable 缓存注解、@Transactional 事务注解等失效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值