Spring은 다양한 캐시 구현에 대한 CacheManager 인터페이스를 초록하고 사용자는이 인터페이스를 사용하여 기본 구현을 신경 쓰지 않고 캐시를 처리합니다. 또한 비즈니스 코드를 수정하지 않고 캐시의 특정 구현으로 편리하게 변경할 수 있습니다. 다음은 SpringBoot에서 캐시 사용에 대한 간단한 소개입니다.
1. 종속성을 추가하십시오
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-캐시 </artifactid> </fectionency>
2. 아래 그림과 같이 구성 클래스에서 캐시를 켜십시오.
3. 다음과 같이 사용해야하는 방법에 주석을 추가하십시오.
@override // @cacheput이 주석은 메소드의 반환 값을 캐시합니다. 캐시 이름은 사람이고 데이터의 키는 @cacheput (value = "people", key = "#person.id")의 ID입니다 (개인) {person p = personrepository.save (person); System.out.println ( "ID의 경우 키는 다음과 같습니다."+p.getId ()+"Data Cached"); 반환 p; } @override // @cacheevict이 주석은 People Cache의 키 ID로 데이터를 삭제합니다 @cacheevict (value = "people", key = "#id") public void remove (long id) {system.out.println ( "id 및 key"+id+"가있는 데이터 캐시 제거"); // 실제 삭제 작업은 여기에서 수행되지 않습니다} @override //@cachable이 주석은 메소드가 실행될 때 캐시에 Key #person.id가있는 캐시가 존재하는지 여부를 결정합니다. 존재하면 캐시에서 데이터를 직접 반환합니다. 존재하지 않으면 데이터베이스가 확인되고 반환 결과가 캐시됩니다. @Cachable (value = "people", key = "#person.id") 공개 사람 findone (person person) {person p = personrepository.findone (person.getid ()); System.out.println ( "ID의 경우 키는 다음과 같습니다."+p.getId ()+"Data Cached"); 반환 p; }위의 부품이 캐시를 완료했지만 현재 캐시는 기본적으로 메모리 기반이며 지속되지 않았습니다. 다음은 다음과 같이 캐시로서 Redis의 특정 구현입니다.
4. 종속성을 추가하십시오
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-레디 디스 </artifactid> </fectionency>
5. 구성 파일에 Redis 구성을 추가하십시오
redis.hostname = localhost redis.port = 6379
6. 스프링 컨테이너에서 Redis를 구성하십시오
@configuration public class readisconfig 확장 CachingConfigurersUpport {private static final logger = loggerfactory.getLogger (readisconfig.class); @autowired 개인 환경 Env; @bean public jedisconnectionfactory readisconnectionfactory () {jediscontectionfactory readisconnectionfactory = new jedisconnectionfactory (); readisconnectionfactory.sethostname (Env.getProperty ( "redis.hostname")); readisconnectionfactory.setport (integer.parseint (Env.getProperty ( "redis.port"))); RECONER REASISCONTERATIONFACTORY; } @bean public redistemplate <string, String> redistemplate (readisconnectionFactory cf) {redistemplate <string, String> redistemplate = new redistemplate <> (); redistemplate.setConnectionFactory (cf); redistemplate를 반환합니다. } @bean public cachemanager cachemanager (redistemplate <?,?> redistemplate) {readiscachemanager cachemanager = new readiscacheManager (redistemplate); Cachemanager.SetDefaultexPiration (600); 반환 캐시미너; }}좋아요, 끝났습니다. 다른 것을 바꿀 필요가 없습니다. 매우 편리하지 않습니까?
또한 캐시 할 클래스는 직렬화되어야합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.