[SPRING] Spring CaffeineCacheManager에 여러 개의 카페인로드 캐시가 추가되었습니다.
SPRINGSpring CaffeineCacheManager에 여러 개의 카페인로드 캐시가 추가되었습니다.
몇 가지 고유 한 LoadingCache를 Spring CacheManager에 추가하려고하지만 CaffeCacheManager를 사용하여 이것이 어떻게 가능한지는 알 수 없습니다. 콘텐츠를 새로 고치는 데는 하나의 로더 만 가능하지만 각 캐시마다 별도의 로더가 필요합니다. Spring 캐시 관리자에 여러 개의로드 캐시를 추가 할 수 있습니까? 그렇다면 어떻게됩니까?
CaffeineCacheManager cacheManage = new CaffeineCacheManager();
LoadingCache<String, Optional<Edition>> loadingCache1 =
Caffeine.newBuilder()
.maximumSize(150)
.refreshAfterWrite(5, TimeUnit.MINUTES)
.build(test -> this.testRepo.find(test));
LoadingCache<String, Optional<Edition>> loadingCache2 =
Caffeine.newBuilder()
.maximumSize(150)
.refreshAfterWrite(5, TimeUnit.MINUTES)
.build(test2 -> this.testRepo.find2(test2));
// How do I add to cache manager, and specify a name?
해결법
-
==============================
1.가능합니다. 모든 캐시를 미세 조정해야하므로 직접 정의하는 것이 좋습니다. 예제로 돌아 가면 다음 단계가됩니다.
가능합니다. 모든 캐시를 미세 조정해야하므로 직접 정의하는 것이 좋습니다. 예제로 돌아 가면 다음 단계가됩니다.
SimpleCacheManager cacheManager = new SimpleCacheManager(); cacheManager.setCaches(Arrays.asList( new CaffeineCache("first", loadingCache1), new CaffeineCache("second", loadingCache2)));
그런 다음 평상시와 같이 사용할 수 있습니다.
@Cacheable("first") public Foo load(String id) { ... }
Spring Boot를 사용한다면, 개별 캐시를 bean (org.springframework.cache.Cache 구현체)으로 노출하면 우리는이를 감지하고 자동으로 SimpleCacheManager를 생성 할 것입니다.
이 전략을 사용하면 다른 구현으로 캐시 추상화를 사용할 수 있습니다. 먼저 카페인 캐시가 될 수 있고 다른 공급자의 캐시가 될 수 있습니다.
from https://stackoverflow.com/questions/44507309/multiple-caffeine-loadingcaches-added-to-spring-caffeinecachemanager by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] AJAX 요청에 대한 응답으로 Spring MVC 컨트롤러에서 객체를 반환하는 방법은 무엇입니까? (0) | 2019.05.31 |
---|---|
[SPRING] @Primary의 Spring XML과 동일합니다. (0) | 2019.05.30 |
[SPRING] JSR-303 유효성 검사 그룹은 기본 그룹을 정의합니다. (0) | 2019.05.30 |
[SPRING] iBatis, spring, 실행되는 SQL을 어떻게 로그합니까? (0) | 2019.05.29 |
[SPRING] Spring rest controller에서 일반 json body에 액세스하는 방법은 무엇입니까? (0) | 2019.05.29 |