我對spring mvc 3緩存有要求。要求是:在啓動服務器時,我們需要調用數據庫的一個下拉列表並將這些值放入緩存中。因此,無論何時我們需要這些值,我們都需要從緩存中檢索。spring mvc 3緩存示例
請幫助我一個例子。
在此先感謝。
我對spring mvc 3緩存有要求。要求是:在啓動服務器時,我們需要調用數據庫的一個下拉列表並將這些值放入緩存中。因此,無論何時我們需要這些值,我們都需要從緩存中檢索。spring mvc 3緩存示例
請幫助我一個例子。
在此先感謝。
也許你可以使用init-method(Spring 2.5)或@PostConstruct註解(在Spring 3.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
}
}
假設,例如,你可以在課堂上使用如下
@controller
public class HomeController {
@Autowired
private CacheDBData cacheDBData ;
//getter and setters
private void methodxyz() {
String values[] = cacheDBData.getValues();
}
}
我已經成功與Ehcahe for Spring。有幾個配置文件需要設置,但在此之後,您只需標註要緩存輸出的方法,並且它可以正常工作。
這樣做的好處是您可以更改從服務/數據庫返回的值,而不必重新啓動您的應用程序,這與接受的答案不同。
你是對的,我們需要使用@PostConstruct,它將在服務器啓動時調用。但是這個值不會出現在緩存中嗎?如上述方法「methodxyz()」中所提到的,每當我們調用「cacheDBData.getValues();」時,數據庫命中將會發生嗎?我想把這些值放入緩存中。如果我錯了,請糾正我。 – user1802047