캐시 모듈 사용 예
예1: 캐시 모듈을 통해 캐시된 데이터를 직접 조작
public static void main(String[] args) throws Exception { YMP.get().init(); try { // 操作默认缓存 Caches.get().put("key1", "value1"); System.out.println(Caches.get().get("key1")); // 操作指定名称的缓存 Caches.get().put("default", "key2", "value2"); System.out.println(Caches.get().get("default", "key2")); } finally { YMP.get().destroy(); } }
Note# 🎜 🎜#: 캐시 이름을 지정할 때 해당 이름에 해당하는 구성이 이미 존재하는지 확인하세요.
실행 결과:value1 value2
#🎜 🎜#
예 2: 주석 기반 클래스 메서드 캐싱여기서는 @Cacheable 주석을 사용하여 메서드의 실행 결과를 식별합니다. 해당 클래스에서 Caching을 수행하는데 주의할 점은
먼저 YMP 클래스 객체에 등록된 클래스에 @Cacheable Annotation을 선언해야 한다는 점이다. 클래스가 캐싱을 지원함을 나타내는 관리자#🎜 🎜#두 번째로, 실행 결과를 캐시해야 하는 메소드에 @Cacheable 주석을 추가합니다. 매개변수 설명:key: 캐시 키가 설정되지 않은 경우 keyGenerator를 사용하여 자동으로 생성됩니다. ; generator: 키 생성기 인터페이스 구현 클래스, 기본값은 DefaultKeyGenerator 클래스입니다.cacheName: 캐시 이름, 기본값은 default입니다.
scope: 캐시 범위, 선택 값은 APPLICATION, SESSION 및 DEFAULT입니다. 기본값은 DEFAULT이며, DEFAULT가 아닌 설정에는 캐시 범위 프로세서(ICacheScopeProcessor) 인터페이스의 협력이 필요합니다.
# 🎜🎜#timeout: 캐시 데이터 시간 초과, 선택적 매개 변수, 값은 0, 0보다 크거나 같아야 합니다. 기본 캐시가 300초임을 의미합니다.샘플 코드:
#🎜🎜 #@Bean @Cacheable public class CacheDemo { @Cacheable public String sayHi(String name) { System.out.println("No Cached"); return "Hi, " + name; } public static void main(String[] args) throws Exception { YMP.get().init(); try { CacheDemo _demo = YMP.get().getBean(CacheDemo.class); System.out.println(_demo.sayHi("YMP")); System.out.println(_demo.sayHi("YMP")); // System.out.println("--------"); // System.out.println(_demo.sayHi("YMPer")); System.out.println(_demo.sayHi("YMP")); System.out.println(_demo.sayHi("YMPer")); } finally { YMP.get().destroy(); } } }실행 결과 :
No Cached Hi, YMP Hi, YMP -------- No Cached Hi, YMPer Hi, YMP Hi, YMPer
위의 결과 출력은 다음과 같습니다. 처음으로 sayHi 메소드의 동일한 매개변수가 호출되는 경우를 볼 수 있습니다. 다시 호출하면 캐시를 사용하지 않음을 나타내는 "No Cached" 문자열이 출력됩니다.