지난번 강좌에서 우리는 [ Thread내캐쉬사용 및 Cache 어노테이션 사용법 ] 을 알아보았다. 그럼 우리는 실제 springboot 프로젝트에서 어떤 캐쉬를 사용할것인지 고민하게 된다. 일단 springboot @EnableCaching 으로 자동으로 CacheManager 를 구성한다.
Springboot 아래순서대로 감지시도한다.
Generic
JCache (JSR-107) (EhCache 3, Hazelcast, Infinispan, and others)
위 설저을 끝내고 test 코드를 돌리면 CacheManager가 EhCacheManager 로 바뀐것을 확인 할수 있다. 이로서 EhCahce 구동은 성공!
@AutowiredprivateCacheManager cacheManager;@Testpublicvoidtest() throws Exception {System.out.println("CacheManager type : "+cacheManager.getClass());userRepository.save(newUser("AAA",10));User u1 =userRepository.findByName("AAA");System.out.println("첫번째 조회 : "+u1.getAge());User u2 =userRepository.findByName("AAA");System.out.println("두번째 조회 : "+u2.getAge());}
찍힌 로그 확인
CacheManager type : class org.springframework.cache.ehcache.EhCacheCacheManager
Hibernate: select next_val as id_val from hibernate_sequence for update
Hibernate: update hibernate_sequence set next_val= ? where next_val=?
Hibernate: insert into user (age, name, id) values (?, ?, ?)
2020-07-14 18:09:28.465 INFO 58538 --- [ main] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
Hibernate: select user0_.id as id1_0_, user0_.age as age2_0_, user0_.name as name3_0_ from user user0_ where user0_.name=?
첫번째 조회 : 10
두번째 조회 : 10
첫번째 줄에 : org.springframework.cache.ehcache.EhCacheCacheManager 라고 찍힘.