박재우
7 months ago
3 changed files with 73 additions and 2 deletions
@ -0,0 +1,46 @@ |
|||||||
|
package kr.co.palnet.kac.app.config; |
||||||
|
|
||||||
|
import java.time.Duration; |
||||||
|
|
||||||
|
import javax.cache.CacheManager; |
||||||
|
|
||||||
|
import org.ehcache.config.builders.CacheConfigurationBuilder; |
||||||
|
import org.ehcache.config.builders.ExpiryPolicyBuilder; |
||||||
|
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.annotation.EnableCaching; |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
@EnableCaching |
||||||
|
@Configuration |
||||||
|
public class CachingConfig { |
||||||
|
|
||||||
|
private final javax.cache.configuration.Configuration<Object, Object> jCacheConfiguration; |
||||||
|
|
||||||
|
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(30))) |
||||||
|
.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(60)))); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Bean |
||||||
|
public HibernatePropertiesCustomizer hibernatePropertiesCustomizer(CacheManager cacheManager) { |
||||||
|
return hibernateProperties -> hibernateProperties.put(ConfigSettings.CACHE_MANAGER, cacheManager); |
||||||
|
} |
||||||
|
|
||||||
|
@Bean |
||||||
|
public JCacheManagerCustomizer cacheManagerCustomizer() { |
||||||
|
return cm -> { |
||||||
|
cm.createCache("code", jCacheConfiguration); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue