이 글은 주로 java spring-cache 키 설정에 대한 주의사항을 소개하는 글인데 편집자가 꽤 좋다고 생각해서 필요한 친구들이 참고할 수 있도록 공유합니다.
프로젝트의 동시성 성능을 향상하려면 외부 데이터 소스 액세스, Restful API 호출, 재사용 가능한 복잡한 계산 등 세 가지 유형의 함수 처리 결과를 캐시하는 로컬 메모리 캐시를 도입하는 것이 좋습니다. 현재 spring Cache의 @Cacheable 어노테이션 방식이 사용되고 있으며, 구체적인 캐시 구현은 Guava Cache이다.
여기에서는 구체적인 캐시 구성을 소개하지 않지만 주요 구성을 설명합니다.
1. 기본 형태
@Cacheable(value="cacheName", key"#id") public ResultDTO method(int id);
2. 조합 형태
@Cacheable(value="cacheName", key"T(String).valueOf(#name).concat('-').concat(#password)) public ResultDTO method(int name, String password);
3. 양식
@Cacheable(value="cacheName", key"#user.id) public ResultDTO method(User user);
4. 사용자 정의 키 생성기
@Cacheable(value="gomeo2oCache", keyGenerator = "keyGenerator") public ResultDTO method(User user);
우리는 출력:
@Component public class CacheTestImpl implements CacheTest { @Cacheable("databaseCache") public Long test1() { return 1L; } @Cacheable("databaseCache") public Long test2() { return 2L; } @Cacheable("databaseCache") public Long test3() { return 3L; } @Cacheable("databaseCache") public String test4() { return "4"; } }
실제 출력은 다음과 같습니다.
1 2 3 4
또한 원자 유형의 배열은 키로 직접 사용하면 적용되지 않습니다.
위의 두 가지 문제를 해결하기 위해 A를 사용자 정의했습니다. KeyGenerator는 다음과 같습니다:
1 1 1 ClassCastException: java.lang.Long cannot be cast to java.lang.String
이 방법을 사용하면 다중 매개변수, 원자 유형 배열, 메서드 이름 식별 등과 같은 문제를 해결할 수 있습니다.
위 내용은 Java Spring의 캐시 키 구성에 대한 참고 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!