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); }