반응형

Java Config를 이용하는 경우에 해당합니다. (xml 설정은 1년전에 안쓰기로 버렸기 때문에... 본 포스트에는 내용이 없습니다.)

 

4.1.0으로 넘어오면서 override되는 메소드가 두개정도 추가되었습니다만..  

필수로 구현해야 하는건 아닌거 같더군요. 

 

1. 설정 


@Configuration
@EnableCaching
public class CachingConfig implements CachingConfigurer {

    @Bean(destroyMethod="shutdown")
    public net.sf.ehcache.CacheManager ehCacheManager() {
        CacheConfiguration staticConfig = new CacheConfiguration();
        staticConfig.setName("StaticConfig");  // 캐시 이름
        staticConfig.setMemoryStoreEvictionPolicy("LRU");  // 메모리에 저장되는 방식을 결정
        staticConfig.setMaxEntriesLocalHeap(100);  // 최대로 캐싱할 수 있는 Entries의 수
        staticConfig.setTimeToIdleSeconds(3600);   
        staticConfig.setTimeToLiveSeconds(3600);
        
        net.sf.ehcache.config.Configuration config = new net.sf.ehcache.config.Configuration();
        config.addCache(staticConfig);

        return net.sf.ehcache.CacheManager.newInstance(config);
    }
    
    @Bean
    @Override
    public CacheManager cacheManager() {
        return new EhCacheCacheManager(ehCacheManager());
    }

    @Bean
    @Override
    public KeyGenerator keyGenerator() {        
        return new SimpleKeyGenerator();
    }

    @Override
    public CacheResolver cacheResolver() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public CacheErrorHandler errorHandler() {
        // TODO Auto-generated method stub
        return null;
    }

 

2. 사용     


@Cacheable(value="StaticConfig", key="#configNum")   // StaticConfig라는 캐시에 configNum을 기준으로 캐싱한다.
    public Object selectStaticConfig(int configNum) {
        // TODO
    }

    @CacheEvict(value="StaticConfig")    // StaticConfig에 캐싱되어 있던 내용을 초기화한다.
    public Object selectStaticConfigInitCache(int configNum) {
        // TODO
    } 

 

매우 간단합니다. 

반응형
,