2012-11-07 2 views
0

스프링 mvc 3 캐싱에 대한 요구 사항이 있습니다. 요구 사항 : 서버를 시작하는 동안 하나의 드롭 다운에 대해 데이터베이스를 호출하고 해당 값을 캐시에 저장해야합니다. 따라서 이러한 값이 필요할 때마다 캐시에서 검색해야합니다.spring mvc 3 캐싱 예제

예를 들어 도와주세요.

미리 감사드립니다.

답변

1

init-method (Spring 2.5) 또는 @PostConstruct annotation (Spring 3.0)을 사용할 수 있습니다. 이 방법은 다음 서버 시작시 호출 될 것은 내가 Ehcahe for Spring으로 성공을 거두었습니다

@controller 
public class HomeController { 
@Autowired 
private CacheDBData cacheDBData ; 
//getter and setters 
private void methodxyz() { 
String values[] = cacheDBData.getValues(); 
} 
} 
+0

당신이 맞으면 서버 시작시 호출 될 @PostConstruct를 사용해야합니다. 그러나이 값은 캐시에 존재하지 않을 것입니다. 위의 메서드 "methodxyz()"에서 언급했듯이 "cacheDBData.getValues ​​();"를 호출 할 때마다 데이터베이스 히트가 올바르게 발생합니다. 그 값들을 캐시에 넣고 싶습니다. 내가 틀렸다면 나를 바로 잡아주세요. – user1802047

0

을 다음과 같이 클래스에서 사용할 수있는

@Component 
public class CacheDBData { 

private String values[]; 
//add setter & getter 

//This will be called during server start up after properties are initialised 
@PostConstruct 
public void getDataFromDB() { 
values = //Logic to get data from DB and store that in values property 
} 
} 

예를 들어 가정의 코드를입니다. 설정 파일 몇 가지가 있지만 그 후에 출력을 캐시하려는 메소드에 주석을 달면 그냥 작동합니다.

이것은 서비스/데이터베이스에서 되돌아 오는 값을 변경할 수 있으며 허용 된 답변과 달리 앱을 다시 시작하지 않아도된다는 장점이 있습니다.