第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在不覆蓋默認(rèn) spring-cache 的情況下創(chuàng)建輔助 CacheManager

如何在不覆蓋默認(rèn) spring-cache 的情況下創(chuàng)建輔助 CacheManager

蕭十郎 2023-03-09 10:53:20
我的 application.yml 中有一個默認(rèn)的 redis 緩存配置:cache:    type: redis    redis:      time-to-live: 7200000 # 2 hour TTL - Tune this if needed later  redis:    host: myHost    port: myPort    password: myPass    ssl: true    cluster:      nodes: clusterNodes    timeout: 10000它工作得很好,我不想為它創(chuàng)建任何自定義緩存管理器。但是,我的代碼中有一些緩存不需要使用 redis。出于這個原因,我想制作第二個 CacheManager,它是一個簡單的 ConcurrentHashMap 并使用 @Cacheable 指定它為此,我創(chuàng)建了一個新的 CacheManager Bean:@Configuration@EnableCaching@Slf4jclass CachingConfiguration {    @Bean(name = "inMemoryCache")    public CacheManager inMemoryCache() {        SimpleCacheManager cache = new SimpleCacheManager();        cache.setCaches(Arrays.asList(new ConcurrentMapCache("CACHE"));        return cache;    }}這導(dǎo)致 inMemoryCache 成為我的默認(rèn)緩存,而我所有其他 @Cacheable() 都嘗試使用 inMemoryCache。我不希望我創(chuàng)建的 CacheManager bean 成為我的默認(rèn)值。無論如何我可以指定它是次要的并且不阻止 spring-cache 做它的魔法嗎?
查看完整描述

1 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊

我能夠保留 yml 中的默認(rèn) Redis 配置,并使用以下代碼添加一個新的 inMemory CacheManager(我使用的是 Clustered Redis):


    @Bean

    @Primary

    public RedisCacheManager redisCacheManager(LettuceConnectionFactory lettuceConnectionFactory) {

        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();

        redisCacheConfiguration.usePrefix();



        return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(lettuceConnectionFactory)

                .cacheDefaults(redisCacheConfiguration).build();

    }


    @Bean

    public LettuceClusterConnection getConnection(LettuceConnectionFactory lettuceConnectionFactory) {

        LettuceClusterConnection clusterConnection = (LettuceClusterConnection) lettuceConnectionFactory.getClusterConnection();

        return clusterConnection;

    }



    @Bean(name = "inMemoryCache")

    public CaffeineCacheManager inMemoryCache() {

        CaffeineCacheManager cacheManager =  new CaffeineCacheManager();

        cacheManager.setCaffeine(caffeineCacheBuilder());

        return cacheManager;

    }


    Caffeine< Object, Object > caffeineCacheBuilder() {

        return Caffeine.newBuilder()

                .initialCapacity(3000)

                .maximumSize(40000)

                .expireAfterAccess(30, TimeUnit.MINUTES);

    }


查看完整回答
反對 回復(fù) 2023-03-09
  • 1 回答
  • 0 關(guān)注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號