springboot hazelcast缓存中间件的实例代码

 更新时间:2018年08月23日 11:38:27   作者:张占岭  
这篇文章主要介绍了springboot hazelcast缓存中间件的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

缓存来了

在dotnet平台有自己的缓存框架,在java springboot里当然了集成了很多,而且缓存的中间件也可以进行多种选择,向 redis , hazelcast 都是分布式的缓存中间件,今天主要说一下后者的实现。

添加依赖包

dependencies {
  compile("org.springframework.boot:spring-boot-starter-cache")
  compile("com.hazelcast:hazelcast:3.7.4")
  compile("com.hazelcast:hazelcast-spring:3.7.4")
}
bootRun {  systemProperty "spring.profiles.active", "hazelcast-cache"
}

config统一配置

@Configuration
@Profile("hazelcast-cache")//运行环境名称
public class HazelcastCacheConfig {
 @Bean
 public Config hazelCastConfig() {
  Config config = new Config();
  config.setInstanceName("hazelcast-cache");
  MapConfig allUsersCache = new MapConfig();
  allUsersCache.setTimeToLiveSeconds(3600);
  allUsersCache.setEvictionPolicy(EvictionPolicy.LFU);
  config.getMapConfigs().put("alluserscache", allUsersCache);
  MapConfig usercache = new MapConfig();
  usercache.setTimeToLiveSeconds(3600);//超时时间为1小时
  usercache.setEvictionPolicy(EvictionPolicy.LFU);
  config.getMapConfigs().put("usercache", usercache);//usercache为缓存的cachename
  return config;
 }
}

添加仓储

public interface UserRepository {
 List<UserInfo> fetchAllUsers();
 List<UserInfo> fetchAllUsers(String name);
}
@Repository
@Profile("hazelcast-cache")// 指定在这个hazelcast-cache环境下,UserRepository的实例才是UserInfoRepositoryHazelcast
public class UserInfoRepositoryHazelcast implements UserRepository {
 @Override
 @Cacheable(cacheNames = "usercache", key = "#root.methodName")// 无参的方法,方法名作为key
 public List<UserInfo> fetchAllUsers(){
  List<UserInfo> list = new ArrayList<>();
  list.add(UserInfo.builder().phone("135").userName("zzl1").createAt(LocalDateTime.now()).build());
  list.add(UserInfo.builder().phone("136").userName("zzl2").createAt(LocalDateTime.now()).build());
  return list;
 }
 @Override
 @Cacheable(cacheNames = "usercache", key = "{#name}") // 方法名和参数组合做为key
 public List<UserInfo> fetchAllUsers(String name) {
  List<UserInfo> list = new ArrayList<>();
  list.add(UserInfo.builder().phone("135").userName("zzl1").createAt(LocalDateTime.now()).build());
  list.add(UserInfo.builder().phone("136").userName("zzl2").createAt(LocalDateTime.now()).build());
  return list;
 }
}

配置profile

application.yml开启这个缓存的环境

profiles.active: hazelcast-cache

运行程序

可以在单元测试里进行测试,调用多次,方法体只进入一次,这就是缓存成功了。

@ActiveProfiles("hazelcast-cache")
public class UserControllerTest extends BaseControllerTest {
 @Test
 public void fetchUsers() {
  getOk();
  //test caching
  getOk();
 }
 private WebTestClient.ResponseSpec getOk() {
  return http.get()
    .uri("/users/all/zzl")
    .exchange()
    .expectStatus().isOk();
 }
}

总结

以上所述是小编给大家介绍的springboot hazelcast缓存中间件的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

相关文章

  • 深入浅出讲解Java中的枚举类

    深入浅出讲解Java中的枚举类

    这篇文章主要介绍了深入浅出讲解Java中的枚举类,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Spring Cloud入门系列服务提供者总结

    Spring Cloud入门系列服务提供者总结

    这篇文章主要介绍了Spring Cloud入门系列之服务提供者总结,服务提供者使用Eureka Client组件创建 ,创建完成以后修改某文件,具体操作方法及实例代码跟随小编一起看看吧
    2021-06-06
  • 使用栈的迷宫算法java版代码

    使用栈的迷宫算法java版代码

    这篇文章主要为大家详细介绍了使用栈的迷宫算法java版代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 解决Java提示正在尝试分配更低的访问权限问题

    解决Java提示正在尝试分配更低的访问权限问题

    在本篇文章里小编给大家整理的是关于解决Java提示正在尝试分配更低的访问权限问题的相关方法内容,有需要的朋友们跟着参考学习下。
    2019-07-07
  • Spring Bean配置方式总结

    Spring Bean配置方式总结

    定义Spring Bcan的3种方式分别是:基于XML 的方式配置、基于注解扫播方式配置、基于元数据类的配置,本文就通过代码示例给大家详细讲讲这三种配置方式,需要的朋友可以参考下
    2023-12-12
  • Java8新特性之线程安全日期类

    Java8新特性之线程安全日期类

    这篇文章主要介绍了Java8新特性之线程安全日期类,文中有非常详细的代码示例,对正在学习java的小伙伴们有一定的帮助,需要的朋友可以参考下
    2021-04-04
  • String.intern()作用与常量池关系示例解析

    String.intern()作用与常量池关系示例解析

    这篇文章主要为大家介绍了String.intern()作用与常量池关系示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • SpringCloud 中防止绕过网关请求直接访问后端服务的解决方法

    SpringCloud 中防止绕过网关请求直接访问后端服务的解决方法

    这篇文章主要介绍了SpringCloud中如何防止绕过网关请求直接访问后端服务,本文给大家分享三种解决方案,需要的朋友可以参考下
    2023-06-06
  • java设计模式笔记之适配器模式

    java设计模式笔记之适配器模式

    这篇文章主要为大家详细介绍了java设计模式之适配器模式笔记,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • maven私服搭建的实现步骤

    maven私服搭建的实现步骤

    本文主要介绍了maven私服搭建的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论