spring 은 ehcache 를 사용 하여 페이지 캐 시 예제 를 실현 합 니 다.
시스템 에서 일부 방 문 량 이 매우 많 고 데이터 업데이트 가 비교적 적은 페이지 에 대해 페이지 캐 시 를 설정 할 수 있 습 니 다.예 를 들 어 첫 페이지,일부 조회 페이지 와 통계 페이지 는 몇 분 에 한 번 씩 캐 시 를 업데이트 하도록 설정 할 수 있 습 니 다.
spring 의 ehcache 페이지 캐 시 는 filter 의 원리 로 이 루어 집 니 다.ehcache-web 패키지 의'Simple PageCaching Filter'필 터 는 간단 한 페이지 캐 시 기능 을 제공 합 니 다.특별한 수요 가 있 으 면 이 종 류 를 계승 하여 필 터 를 실현 할 수 있 습 니 다.
아래 밤 들 기:
1.jar 패키지 참조 추가
pom.xml 파일 수정,가입:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-web</artifactId>
<version>2.0.4</version>
</dependency>
2.프로필 수정1.웹.xml 파일 을 수정 하고 두 개의 filter 를 추가 합 니 다.
<!-- -->
<!-- -->
<filter>
<filter-name>testPageAddCachingFilter</filter-name>
<filter-class>org.xs.demo1.TestPageCachingFilter</filter-class>
<init-param>
<param-name>cacheName</param-name>
<param-value>testPageCache</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>testPageAddCachingFilter</filter-name>
<url-pattern>/hello/list</url-pattern>
<url-pattern>/hello/list2</url-pattern>
<url-pattern>/hello/view/*</url-pattern>
</filter-mapping>
<!-- -->
<filter>
<filter-name>testPageRemoveCachingFilter</filter-name>
<filter-class>org.xs.demo1.TestPageRemoveCachingFilter</filter-class>
<init-param>
<param-name>cacheName</param-name>
<param-value>testPageCache</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>testPageRemoveCachingFilter</filter-name>
<url-pattern>/hello/update/*</url-pattern>
<url-pattern>/hello/delete/*</url-pattern>
</filter-mapping>
2.ehcache-context.xml 파일 을 수정 하고"testPageCache"캐 시 인 스 턴 스 이름 을 추가 합 니 다(반드시 추가 해 야 합 니 다.그렇지 않 으 면 tomcat 시작 시 filter 가 잘못 보고 되 어 알림 을 찾 을 수 없습니다)
<cache name="testPageCache"
maxEntriesLocalHeap="10000"
maxEntriesLocalDisk="100000"
overflowToDisk="true"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
/>
3.filter 클래스 추가1.캐 시 필터 추가
package org.xs.demo1;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter;
public class TestPageCachingFilter extends SimplePageCachingFilter {
@Override
protected CacheManager getCacheManager() {
return ((CacheManager)ContextUtils.getBean("ehcacheManager"));
}
}
Simple PageCaching Filter 류 를 계승 하 는 이 유 는 Cache Manager 를 직접 만 들 기 때 문 입 니 다.그렇지 않 으 면 자동 으로 생 성 됩 니 다.기본 값 은 루트 디 렉 터 리 에 가서"ehcache.xml"을 찾 습 니 다.기 존 설정 과 맞지 않 습 니 다.2.캐 시 필터 추가
package org.xs.demo1;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.ehcache.Ehcache;
public class TestPageRemoveCachingFilter extends TestPageCachingFilter {
@Override
protected void doFilter(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse, final FilterChain chain) throws ServletException, IOException {
Ehcache ehcache = getCacheManager().getEhcache(getCacheName());
//
ehcache.removeAll();
//
chain.doFilter(httpRequest, httpResponse);
}
}
4.테스트 실행첫 방문"http://localhost:8080/demo1/hello/list2"주 소 는 Controller 의 정지점 에 들 어 갑 니 다."
두 번 째 방문 은 정지점 에 들 어가 지 않 고 페이지 를 순식간에 불 러 옵 니 다.
"삭제"단 추 를 누 르 면 TestPageRemoveCaching Filter 필터 의 정지점 에 들 어 갑 니 다.
그 다음 에 list 2 를 방문 하면 Controller 의 정지점 에 다시 들 어 갑 니 다.
인 스 턴 스 코드 주소:spring-ehcache_jb51.rar
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.