gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章springboot hazelcast缓存中间件的实例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

缓存来了 。

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

添加依赖包 。

?
1
2
3
4
5
6
7
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统一配置 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@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;
  }
}

添加仓储 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 。

运行程序 。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@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缓存中间件的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。

原文链接:http://www.cnblogs.com/lori/p/9518892.html 。

最后此篇关于springboot hazelcast缓存中间件的实例代码的文章就讲到这里了,如果你想了解更多关于springboot hazelcast缓存中间件的实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com