【发布时间】:2012-12-02 12:59:37
【问题描述】:
我正在继续我之前提出的问题(下面的链接)
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 列表和技能列表是两个单独表格中的纯只读数据)
- 任何我遗漏的点,您都可以提出建议。
【问题讨论】:
-
你看过code.google.com/p/ehcache-spring-annotations的Spring EhCache项目吗?我用它来做你所描述的事情——它基本上缓存了一个方法的响应,并让你能够设置刷新之前的时间段等。使用(注释)和设置非常简单。
标签: mysql hibernate spring-mvc drop-down-menu