国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

springboot hazelcast緩存中間件的實例代碼

2024-07-14 08:42:09
字體:
供稿:網(wǎng)友

緩存來了

在dotnet平臺有自己的緩存框架,在java springboot里當(dāng)然了集成了很多,而且緩存的中間件也可以進(jìn)行多種選擇,向 redis , hazelcast 都是分布式的緩存中間件,今天主要說一下后者的實現(xiàn)。

添加依賴包

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統(tǒng)一配置

@Configuration@Profile("hazelcast-cache")//運行環(huán)境名稱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環(huán)境下,UserRepository的實例才是UserInfoRepositoryHazelcastpublic 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}") // 方法名和參數(shù)組合做為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開啟這個緩存的環(huán)境

profiles.active: hazelcast-cache

運行程序

可以在單元測試?yán)镞M(jìn)行測試,調(diào)用多次,方法體只進(jìn)入一次,這就是緩存成功了。

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

總結(jié)

以上所述是小編給大家介紹的springboot hazelcast緩存中間件的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 锡林郭勒盟| 邵武市| 衢州市| 齐河县| 衡东县| 汝州市| 南丰县| 邻水| 巴里| 永善县| 明水县| 平舆县| 海伦市| 章丘市| 金塔县| 板桥市| 贵州省| 金乡县| 莫力| 陕西省| 西畴县| 肥西县| 应用必备| 武川县| 全南县| 基隆市| 银川市| 灵璧县| 北海市| 城步| 谢通门县| 青冈县| 呼和浩特市| 淮北市| 庆城县| 漳浦县| 揭西县| 和顺县| 衡山县| 广丰县| 淳安县|