shiro-redisson 是一个 Apache Shiro 的扩展组件,提供了基于 redis 实现的缓存和会话,以支持分布式环境下的应用。底层使用了redisson作为 redis 客户端。
1.使用redisson包解决redis缓存 2.解决shiro-redis使用*查询时,导致redis长时间卡死 3.解决使用spring-boot-devtools,出现ClassCastException异常
1.8
引入Maven依赖或下载jar包
<dependency>
<groupId>com.github.fartherp</groupId>
<artifactId>shiro-redisson</artifactId>
<version>x.x.x</version>
</dependency>
@Bean
public MyShiroRealm myShiroRealm() {
return new MyShiroRealm();
}
@Bean
public SessionManager sessionManager(SessionDAO redisSessionDAO, ObjectProvider<List<SessionListener>> sessionListenersProvider) {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
sessionManager.setSessionDAO(redisSessionDAO);
sessionManager.setSessionListeners(sessionListenersProvider.getIfAvailable());
return mySessionManager;
}
/**
* 内置session监听器,保证删除session/cache冗余的数据信息
*/
@Bean
public List<SessionListener> sessionListener(SessionDAO redisSessionDAO, MyShiroRealm myShiroRealm) {
return Collections.singletonList(new RedisSessionListener(redisSessionDAO, myShiroRealm));
}
@Bean
public RedisCacheManager cacheManager(RedissonClient redissonClient) {
return new RedisCacheManager(redissonClient);
}
@Bean
public RedisSessionDAO redisSessionDAO(RedisCacheManager cacheManager) {
return new RedisSessionDAO(cacheManager);
}