[스프링] 특정 프로파일에서만 활성화되는 스프링 캐시 설정
스프링 프레임워크에서는 메소드의 결과를 캐시에 저장하여 같은 입력 값에 대한 반복적인 연산을 피할 수 있는 캐싱(Caching)을 지원합니다.
인터페이스나 메소드에 @Cacheable
애노테이션을 적용하면 해당 메소드 호출 결과가 캐시에 저장되고, 같은 입력 값에 대한 후속 호출 시, 캐시된 결과가 반환됩니다.
그러나 때로는 특정 환경이나 상황에서만 캐시를 활성화하고 싶을 수 있습니다. 이때 프로파일(Profile)을 사용하여 특정 환경에서만 캐시가 활성화되도록 설정할 수 있습니다.
특정 프로파일에서 캐시 설정하기
1. @Profile
애노테이션 사용
먼저, 활성화할 프로파일에 대해 @Profile
애노테이션을 사용하여 프로파일을 지정해야 합니다.
@Profile("caching-enabled")
@Configuration
public class CachingConfig {
// 캐시 설정 코드
}
2. application.properties
파일에서 프로파일 활성화
application.properties
파일에서 원하는 프로파일을 활성화합니다. 여기서는 caching-enabled
프로파일을 활성화하는 예시입니다.
spring.profiles.active=caching-enabled
3. 메소드에 @Cacheable
애노테이션 추가
이제 캐시를 적용하고자 하는 메소드에 @Cacheable
애노테이션을 추가합니다.
@Cacheable("products")
public Product getProductById(Long id) {
// 메소드 로직
}
4. 프로파일 활성화 여부에 따라 캐시 동작 확인
이렇게 설정한 경우, caching-enabled
프로파일이 활성화되어야 @Cacheable
이 적용된 메소드의 결과가 캐시됩니다. 다른 프로파일이 활성화된 경우에는 캐시가 동작하지 않습니다.
이와 같이 스프링 프로파일을 사용하여 특정 환경이나 상황에서만 캐시를 활성화할 수 있습니다.
참고 자료: