我從前面的問題繼續我提出(下面的鏈接)Spring MVC的 - 從二級緩存加載參考數據
Spring MVC - Get reference data from database on server startup
在先前的帖子得到一些意見後,這種方法我想我可以用它來負載參考數據是,添加以下方法在ArticleController(我的控制器類)
@ModelAttribute
public void populateModel(@RequestParam String number, Model model) {
model.addAttribute("countryList", articleService.getCountryList());
model.addAttribute("skillsList", articleService.getSkillsList());
}
然後用冬眠第二級高速緩存像下面,
@Entity
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class Country {
...
}
同樣,對於技能類
我有三個問題
- 威爾populateModel方法(@ModelAttribute)得到執行一次?即在對ArticleController類執行第一個@RequestMapping方法之前(對於多個會話中的所有請求 - 我在日誌跟蹤中看到ArticleController在啓動服務器時被初始化)?
- 爲了達到二級緩存,我還需要做些什麼嗎? (contry list and skills list純粹只讀取兩個單獨表格中的數據)
- 我錯過了任何隱含點,您可以提供建議。
您是否查看過http://code.google.com/p/ehcache-spring-annotations/上的Spring EhCache項目?我使用它來完成你所描述的任務 - 它基本上緩存了方法的響應,併爲你提供了在刷新之前設置週期的能力等。使用非常簡單(註釋)和設置。 – nickdos