캐시인터셉터


CacheInterceptor는 액션에 필요한 모든 데이터를 캐시할 수 있습니다. 다음 요청이 올 때 캐시가 존재하면 액션을 호출하지 않고도 데이터가 직접 사용되고 렌더링됩니다. 이 사용법은 캐시 관련 코드 오염, 플러그 앤 플레이로부터 완전히 자유로울 수 있습니다. 다음은 샘플 코드입니다:

@Before(CacheInterceptor.class)
public void list() {
List<Blog> Blog.dao.find("블로그에서 * 선택"); User user = User.dao.findById(getParaToInt()); setAttr("blogList", blogList);
setAttr("user", user); blog.html");
}

위 예제의 사용법에서는 actionKey를 캐시 이름으로 사용합니다. 사용하기 전에 ehcache.xml에서 actionKey라는 이름의 캐시를 구성해야 합니다. 예: <cache name="/ blog/list" …> ;, actionKey가 캐시 이름으로 구성된 경우 슬래시 "/"를 생략할 수 없습니다. 또한 CacheInterceptor를 CacheName 주석과 함께 사용하여 기본 actionKey를 actionName으로 대체할 수도 있습니다. 다음은 샘플 코드입니다.

@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에 <cache name="blogList" ...>와 같이 blogList라는 캐시를 구성합니다.