7.3 CacheInterceptor
CacheInterceptor可以将action所需数据全部缓存起来,下次请求到来时如果cache存在则直接使用数据并render,而不会去调用action。此用法可使action完全不受cache相关代码所污染,即插即用,以下是示例代码:
- @Before(CacheInterceptor.class)
- public void list() {
- List<Blog> blogList = Blog.dao.find(“select * from blog”);
- User user = User.dao.findById(getParaToInt());
- setAttr(“blogList”, blogList);
- setAttr(“user”, user);
- render(“blog.html”);
- }
上例中的用法将使用actionKey作为cacheName,在使用之前需要在ehcache.xml中配置以actionKey命名的cache如:
- @Before(CacheInterceptor.class)
- @CacheName(“blogList”)
- public void list() {
- List<Blog> blogList = Blog.dao.find(“select * from blog”);
- setAttr(“blogList”, blogList);
- render(“blog.html”);
- }
以上用法需要在ehcache.xml中配置名为blogList的cache如: