programing

@EnableCaching을 사용한 SpringBoot의 기본 Cache Manager

yellowcard 2023. 6. 19. 21:22
반응형

@EnableCaching을 사용한 SpringBoot의 기본 Cache Manager

아래와 같이 SpringBoot 애플리케이션에 캐싱을 구현했습니다.

@SpringBootApplication
@EnableCaching
public class SampleApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SampleApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(SampleApplication.class, args);
    }

이것은 완전히 잘 작동합니다.

그러나 캐슁을 구현하려면 하나의 필수 Cache Manager/Cache 공급자가 정의되어 있어야 합니다.cacheManager를 정의하지 않아도 애플리케이션이 잘 작동합니다.

Spring에서 정의한 기본 캐시 관리자가 있습니까? Spring 문서에 따르면 Spring Boot은 적합한 캐시 관리자를 자동으로 구성합니다.

그렇다면 캐시 매니저를 정의하지 않으면 무엇이 사용됩니까?

Spring Boot Starter는 ConcurrentHashMap 인스턴스에 값을 저장하는 단순 캐시 공급자를 제공합니다.이것은 캐싱 메커니즘의 가장 단순한 스레드 세이프 구현입니다.

만약에@EnableCaching앱에 주석이 있습니다. Spring Boot은 클래스 경로에서 사용 가능한 종속성을 확인하고 적합하게 구성합니다.CacheManager선택한 공급자에 따라 일부 추가 구성이 필요할 수 있습니다.이 답변의 첫 번째 링크에서 구성에 대한 모든 정보를 찾을 수 있습니다.

어떤 이유에서든 가장 간단한 캐시 관리자(후드 아래에서 ConcurrentHashMap 사용)를 명시적으로 정의하려면 다음을 수행하십시오.

@Bean
public CacheManager cacheManager() {
    return new org.springframework.cache.concurrent.ConcurrentMapCacheManager();
}

언급URL : https://stackoverflow.com/questions/41739581/default-cache-manager-with-spring-boot-using-enablecaching

반응형