diff --git a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/CachingConfig.java b/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/CachingConfig.java index 6959e18..e3efce5 100644 --- a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/CachingConfig.java +++ b/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/CachingConfig.java @@ -6,50 +6,52 @@ import org.ehcache.config.builders.ResourcePoolsBuilder; import org.ehcache.config.units.EntryUnit; import org.ehcache.config.units.MemoryUnit; import org.ehcache.jsr107.Eh107Configuration; -import org.hibernate.cache.jcache.ConfigSettings; -import org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer; import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.jcache.JCacheCacheManager; import org.springframework.context.annotation.AdviceMode; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import javax.cache.Caching; +import javax.cache.spi.CachingProvider; import java.time.Duration; @Configuration @EnableCaching(proxyTargetClass = true, mode = AdviceMode.PROXY) public class CachingConfig { - private final javax.cache.configuration.Configuration jCacheConfiguration; + @Primary + @Bean(name = "ehCacheManager") + public JCacheCacheManager ehCacheManager() { + CachingProvider cachingProvider = Caching.getCachingProvider(); + javax.cache.CacheManager jCacheManager = cachingProvider.getCacheManager(); - public CachingConfig() { - this.jCacheConfiguration = Eh107Configuration.fromEhcacheCacheConfiguration(CacheConfigurationBuilder.newCacheConfigurationBuilder(Object.class, Object.class, - ResourcePoolsBuilder.newResourcePoolsBuilder() - .heap(10000, EntryUnit.ENTRIES)) - .withSizeOfMaxObjectSize(1000, MemoryUnit.B) - .withExpiry(ExpiryPolicyBuilder.timeToIdleExpiration(Duration.ofSeconds(10))) - .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(10)))); - } - - @Bean - public HibernatePropertiesCustomizer hibernatePropertiesCustomizer(CacheManager cacheManager) { - return hibernateProperties -> hibernateProperties.put(ConfigSettings.CACHE_MANAGER, cacheManager); - } + javax.cache.configuration.Configuration jCacheConfiguration = + Eh107Configuration.fromEhcacheCacheConfiguration( + CacheConfigurationBuilder.newCacheConfigurationBuilder(Object.class, Object.class, + ResourcePoolsBuilder.newResourcePoolsBuilder() + .heap(10000, EntryUnit.ENTRIES)) + .withSizeOfMaxObjectSize(1000, MemoryUnit.B) + .withExpiry(ExpiryPolicyBuilder.timeToIdleExpiration(Duration.ofSeconds(10))) + .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(10)))); - @Bean - public JCacheManagerCustomizer cacheManagerCustomizer() { - return new JCacheManagerCustomizer() { - @Override - public void customize(javax.cache.CacheManager cm) { - cm.createCache("code", jCacheConfiguration); - cm.createCache("flight" , Eh107Configuration.fromEhcacheCacheConfiguration(CacheConfigurationBuilder.newCacheConfigurationBuilder(Object.class, Object.class, + jCacheManager.createCache("code", jCacheConfiguration); + jCacheManager.createCache("flight", Eh107Configuration.fromEhcacheCacheConfiguration( + CacheConfigurationBuilder.newCacheConfigurationBuilder(Object.class, Object.class, ResourcePoolsBuilder.newResourcePoolsBuilder() .heap(5000, EntryUnit.ENTRIES)) .withSizeOfMaxObjectSize(500, MemoryUnit.B) .withExpiry(ExpiryPolicyBuilder.timeToIdleExpiration(Duration.ofSeconds(10))) .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(20))))); - } - }; + + return new JCacheCacheManager(jCacheManager); + } + + @Bean + public HibernatePropertiesCustomizer hibernatePropertiesCustomizer(CacheManager cacheManager) { + return hibernateProperties -> hibernateProperties.put(org.hibernate.cache.jcache.ConfigSettings.CACHE_MANAGER, cacheManager); } } diff --git a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/RedisCacheConfig.java b/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/RedisCacheConfig.java index 044b629..8ecf7e9 100644 --- a/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/RedisCacheConfig.java +++ b/app/kac-app/src/main/java/kr/co/palnet/kac/app/config/RedisCacheConfig.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import org.springframework.beans.factory.annotation.Value; -import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -82,7 +81,7 @@ public class RedisCacheConfig { // } @Bean(name = "redisCacheManager") - public CacheManager redisCacheManager(RedisConnectionFactory cf) { + public RedisCacheManager redisCacheManager(RedisConnectionFactory cf) { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new JavaTimeModule()); objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(), diff --git a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/code/service/ComCodeService.java b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/code/service/ComCodeService.java index 376ea22..731490b 100644 --- a/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/code/service/ComCodeService.java +++ b/web/api-common/src/main/java/kr/co/palnet/kac/api/v1/common/code/service/ComCodeService.java @@ -25,7 +25,7 @@ public class ComCodeService { private final ComCodeDomainService comCodeDomainService; // 모든 코드 조회 - @Cacheable(value = "code", key = "#rq?.siteCd") + @Cacheable(value = "code", key = "#rq?.siteCd", cacheManager = "ehCacheManager") public CodeGroupRSWrapper getAllGroup(SearchCodeAllRQ rq) { List comCdGroupBasList = comCodeDomainService.getComCdGroupBasList(rq.getSiteCd()); List codeGroupRSList = comCdGroupBasList.stream().map(group -> {