最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot hazelcast緩存中間件的實(shí)例代碼

 更新時(shí)間:2018年08月23日 11:38:27   作者:張占嶺  
這篇文章主要介紹了springboot hazelcast緩存中間件的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

緩存來了

在dotnet平臺(tái)有自己的緩存框架,在java springboot里當(dāng)然了集成了很多,而且緩存的中間件也可以進(jìn)行多種選擇,向 redis , hazelcast 都是分布式的緩存中間件,今天主要說一下后者的實(shí)現(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")//運(yùn)行環(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);//超時(shí)時(shí)間為1小時(shí)
  usercache.setEvictionPolicy(EvictionPolicy.LFU);
  config.getMapConfigs().put("usercache", usercache);//usercache為緩存的cachename
  return config;
 }
}

添加倉儲(chǔ)

public interface UserRepository {
 List<UserInfo> fetchAllUsers();
 List<UserInfo> fetchAllUsers(String name);
}
@Repository
@Profile("hazelcast-cache")// 指定在這個(gè)hazelcast-cache環(huán)境下,UserRepository的實(shí)例才是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}") // 方法名和參數(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開啟這個(gè)緩存的環(huán)境

profiles.active: hazelcast-cache

運(yùn)行程序

可以在單元測試?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緩存中間件的實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:

相關(guān)文章

  • Java利用AlphaComposite類合并圖像

    Java利用AlphaComposite類合并圖像

    這篇文章主要介紹了Java利用AlphaComposite類合并圖像,幫助大家更好的利用Java處理圖像,感興趣的朋友可以了解下
    2020-10-10
  • Springboot項(xiàng)目因?yàn)閗ackson版本問題啟動(dòng)報(bào)錯(cuò)解決方案

    Springboot項(xiàng)目因?yàn)閗ackson版本問題啟動(dòng)報(bào)錯(cuò)解決方案

    這篇文章主要介紹了Springboot項(xiàng)目因?yàn)閗ackson版本問題啟動(dòng)報(bào)錯(cuò)解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用Pinyin4j進(jìn)行拼音分詞的方法

    使用Pinyin4j進(jìn)行拼音分詞的方法

    下面小編就為大家分享一篇使用Pinyin4j進(jìn)行拼音分詞的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 徹底搞懂Java多線程(三)

    徹底搞懂Java多線程(三)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線程和高并發(fā)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Java中CAS機(jī)制實(shí)現(xiàn)方法詳解

    Java中CAS機(jī)制實(shí)現(xiàn)方法詳解

    傳統(tǒng)的并發(fā)控制手段如synchronized和ReentrantLock雖有效防止資源競爭,卻可能引起性能開銷,相比之下,CAS(CompareAndSwap)提供一種輕量級(jí)的樂觀鎖策略,通過硬件級(jí)別的原子指令實(shí)現(xiàn)無鎖并發(fā),提高性能,需要的朋友可以參考下
    2024-09-09
  • spring中的特殊注解@RequiredArgsConstructor詳解

    spring中的特殊注解@RequiredArgsConstructor詳解

    這篇文章主要介紹了spring中的特殊注解@RequiredArgsConstructor,包括注解注入,構(gòu)造器注入及setter注入,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • spring4新特性之web開發(fā)增強(qiáng)

    spring4新特性之web開發(fā)增強(qiáng)

    這篇文章主要介紹了spring4新特性之web開發(fā)增強(qiáng)的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • Java?Swing實(shí)現(xiàn)掃雷源碼

    Java?Swing實(shí)現(xiàn)掃雷源碼

    這篇文章主要為大家詳細(xì)介紹了Java?Swing實(shí)現(xiàn)掃雷源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java中的ReentrantLock使用解析

    Java中的ReentrantLock使用解析

    這篇文章主要介紹了Java中的ReentrantLock使用解析,ReentrandLock即可重入鎖,可重入鎖解決的是重入鎖定的問題,重入鎖定指的是當(dāng)一個(gè)線程執(zhí)行邏輯時(shí),需要兩次獲取鎖,而該鎖不可重入就會(huì)導(dǎo)致內(nèi)部嵌套無法獲取鎖導(dǎo)致Reentrance Lockout發(fā)生,需要的朋友可以參考下
    2023-11-11
  • 淺談Java中格式化輸出

    淺談Java中格式化輸出

    這篇文章主要介紹了Java中格式化輸出,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

平原县| 宿州市| 揭西县| 广德县| 阿合奇县| 江安县| 康马县| 敦化市| 灌云县| 晋州市| 阜阳市| 泸溪县| 长宁区| 淮阳县| 平遥县| 凤凰县| 新乐市| 桃源县| 新营市| 星子县| 司法| 晴隆县| 桃园县| 讷河市| 普兰县| 张掖市| 阿拉尔市| 海南省| 荔波县| 萝北县| 桐乡市| 大埔区| 城口县| 内乡县| 恩施市| 普兰县| 闻喜县| 大港区| 成安县| 大渡口区| 弋阳县|