일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Security
- JPA
- 페이스북
- 시큐리티
- assertj
- g1
- spring boot
- java
- Spring
- 권한
- apache
- gdg
- jvm
- 리팩토링
- clean code
- Producer
- 비동기
- load balancing
- 스프링
- GC
- 페이징
- 클린코드
- JWT
- 스프링 부트
- 스프링부트
- Refactoring
- oauth2
- OAuth
- tomcat
- RabbitMQ
Archives
- Today
- Total
허원철의 개발 블로그
Spring Boot - Cache 본문
이번 글은 Cache 에 대한 글 입니다.
What..?
- 위 내용과 같이 캐시라는 것을 spring boot 에서 사용할 수 있습니다. 예를 들면, DB 데이터를 반환하고자할 때 한번에 DB 커넥션으로 캐시에 쌓았다가 두번째 부터 캐시에 보관된 데이터를 반환하는 것 입니다.
When..?
- 일반적으로는 사용자가 등록하는 데이터가 아닌, 주로 관리자에 의해 반복적으로 제공되는 데이터를 사용자에게 보여주고 할 때, 사용된다고 합니다.
How..!
1. Gradle 설정
2. Application 설정
3. Model & Component 설정
4. Controller 설정
5. Test & Result
1. Gradle 설정
- Cache 사용을 위해 라이브리를 추가해줍니다. (오늘부터는.. Test 를 이용합니다...)
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-cache')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
2. Application 설정
3. Model & Component 설정
- 우리는 Controller에서 getByIsbn 와 refresh를 호출할 것 입니다.
@Cacheable
- getByIsbn을 호출 하면 약 3초간 딜레이가 걸리고 Book 객체를 반환합니다.
- value는 캐시를 저장하고자 하는 이름입니다.
- key는 인자값으로 캐시에 키를 잡아 키를 통해 데이터를 가져올 것 입니다.
@CacheEvict
- refresh를 호출하면 value에 해당하는 캐시에 담아 있던 key값을 지웁니다.
4. Controller 설정
- localhost:8080/ 와 localhost:8080/clear 를 이용해 테스트를 진행합니다.
5. Test & Result
- 시간 체크를 위해 @Before 와 @After 를 추가 해줍니다.
- 결과를 보고 말을 하자면
① isbn = a 인 값이 처음 호출 됩니다.( 캐시에 저장 )
② isbn = a 를 다시 호출 하게 되면, 캐시에 저장된 데이터를 가져 옵니다.
③ isbn = b 인 값이 처음 호출 됩니다.( 캐시에 저장 )
④ isbn = a 를 다시 호출 하게 되면, 캐시에 저장된 데이터를 가져 옵니다.
⑤ isbn = a 인 값을 캐시에서 삭제 합니다 ( 캐시에서 삭제 )
⑥ isbn = a 인 값을 다시 호출 됩니다.( 캐시에 저장 )
'web' 카테고리의 다른 글
Spring Boot - Swagger (411) | 2016.12.05 |
---|---|
Spring Boot - Custom Jackson Converter (415) | 2016.12.05 |
Spring Boot - Test (406) | 2016.12.05 |
Spring Boot - AOP (424) | 2016.12.04 |
Spring Boot - Interceptor (410) | 2016.12.04 |
Comments