: How To Cache Information In A Threadsafe Manner "참고 자료"를 다루는 일반적인 패턴은 무엇참조 데이터 패턴이 스레드와 비슷하지만 정확히
- 자주 응용 프로그램에서 읽을 데이터가 일반적으로 데이터베이스에 구체화 또는 등록 정보 파일 , 매우 드물게 (일, 주, 달) 업데이트 되었습니까? 데이터가으로 업데이트되면 외부에서 업데이트됩니다.
DAO를 삽입 할 수있는 독점적 인 기능일까요? 그렇다면 자체 콘텐츠를 관리 할 수 있습니까? 이 서비스에서 새로 고침 (즉, MBean을 통해)을 수행하는 refresh() 메소드를 노출하면 애플리케이션을 바운스 할 필요가 없다는 생각이 듭니다.
다른 SO 스레드에서 사람들은 필요할 때마다 DAO를 인스턴스화하고 해당 레벨에서 투명하게 캐시 할 수있는 것처럼 들립니다.
데이터베이스에서 데이터를로드하는 실제 DAO 또는 하드 코딩 된 응답을 반환하는 mock/test-double과 함께 삽입되는 싱글 톤 서비스와 같은 개념입니다. 그러나 자바 enum을 통해 싱글 톤으로 서비스를 구현한다면 Spring을 통해 좀 더 문제가 될 수 있습니다.
그래서 다른 사람들이 일반적으로 참조 데이터를 어떻게 처리합니까? 의지가 있지만 캐싱이있는 캐싱을 사용 하시겠습니까? 아니면 별도의 메모리 내 서비스입니까?
나는 그 부분으로 물을 혼란스럽게 만들었을지도 모릅니다. 주로 싱글 톤에 종속성을 주입하는 것에 대해 궁금합니다. 이제 생각해 보니 별개의 질문 일 수 있습니다. 블로흐 (Bloch)에 따르면 어쨌든 Java에서 싱글 톤을 구현하는 현재 최상의 방법은 단일 멤버 (인스턴스)가있는 Enum입니다. 즉 public enum Elvis { INSTANCE; } – ayang
이 경로를 따라 가려면 Spring에서 MethodInvokingFactoryBean을 사용하여 종속성을 삽입하여 enum 클래스의 관련 setter를 호출 할 수 없습니까? – Adamski
네, 그게 제가 끝내기 쉬운 일입니다.하지만 제 생각에 내가 제 1 원칙으로 돌아가서 내가 잘못하고있는지를 알기에 충분하지 못했습니다. – ayang