Spring Boot系列(十五) 安全框架Apache Shiro(二)缓存-基于Hazelcast的分布式缓存

本文介绍了如何在Spring Boot应用中结合Apache Shiro使用Hazelcast实现分布式缓存。通过引入Hazelcast库,配置相关XML文件,以及自定义缓存管理器转换类,实现了Shiro的session和授权缓存的集群化。启动多个应用实例后,观察到Hazelcast节点间的集群关系,并通过Hazelcast的管理界面验证了缓存的效果和自动过期机制。

通常所说的“分布式”、“集群服务”、“网格式内存数据”、“分布式缓存“、“弹性可伸缩服务”这些非常牛逼高大上名词拿到哪都是ITer装逼的不二之选。在Javaer的世界,有这样一个开源项目,只需要引入一个jar包、只需简单的配置和编码即可实现以上高端技能,他就是 Hazelcast。

在上一篇Shiro缓存中,已经提到了,Shiro 1.3.x版本中,增加了一项非常重要,并且又很方便的功能,就是基于HazelCast的Session集群(分布式缓存)。当然,也可以使用比较流行的Redis作为缓存,只是实现起来要复杂一点,使用Redis缓存,会在后续章节中补充。

下面说一下Spring Boot中采用Hazelcast作为Shiro的分布式缓存的案例。大家可以提前往后看一下Spring Boot 缓存章节内容:
Spring Boot(十八)缓存

当在pom中引入Hazelcast的jar包时,Spring Boot会自动初始化HazelcastInstance 和 HazelcastCacheManager,这时我们可以利用Spring自动加载的com.hazelcast.spring.cache.HazelcastCacheManager 来作为Shiro的缓存(当然在ShiroConfiguration中直接初始化org.apache.shiro.hazelcast.cache.HazelcastCacheManager,但是这样就启动两个Hazelcast节点),此时需要将spring的缓存转换为shiro的缓存。具体实现步骤如下(基于Shiro Ehcache缓存示例基础上):

步骤1: 替换shiro包版本,移除ehcache缓存的jar包,添加hazelcast相关jar包:

<!-- 使用Shiro认证 -->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-hazelcast</artifactId>
    <version>1.3.2</version>
</dependency>
<dependency>
    <groupId>com.hazelcast</groupId>
    <artifactId>hazelcast-spring</artifactId>
</dependen
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值