[SPRING] 주석으로 봄 mvc 3 헤더 없음 캐시를 설정하는 방법
SPRING주석으로 봄 mvc 3 헤더 없음 캐시를 설정하는 방법
스프링 mvc 3에서 주석없이 헤더 캐시를 설정하는 방법은 무엇입니까? ~이 아니다.
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
해결법
-
==============================
1.그러한 옵션은 없습니다. 인터셉터를 사용할 수 있습니다.
그러한 옵션은 없습니다. 인터셉터를 사용할 수 있습니다.
<mvc:annotation-driven/> <mvc:interceptors> <bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> <property name="cacheSeconds" value="0"/> <property name="useExpiresHeader" value="true"/> <property name="useCacheControlHeader" value="true"/> <property name="useCacheControlNoStore" value="true"/> </bean> </mvc:interceptors>
(여기에서 가져온)
한편으로는 그러한 주석을 사용하지 않는 것이 논리적입니다. spring-mvc 메소드에 대한 주석은 주로 컨테이너가 호출 할 메소드를 결정하도록합니다 (요청 헤더, 요청 url 또는 메소드로 제한). 응답 제어는이 범주에 속하지 않습니다.
반면 컨트롤러가 단위 테스트를 받았을 때 HTTP 헤더 항목을 테스트하는 것과 관련이 없기 때문에 (또는 그럴까요?) @ResponseBody와 @ResponseStatus가 있으며, 일부 응답 속성을 지정합니다.
-
==============================
2.특정 컨트롤러 맵핑에 대한 설정을 대체하려면 WebContentInterceptor에서 cacheMappings 특성 오브젝트를 사용하십시오
특정 컨트롤러 맵핑에 대한 설정을 대체하려면 WebContentInterceptor에서 cacheMappings 특성 오브젝트를 사용하십시오
<bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> <property name="cacheSeconds" value="2100" /> <property name="useExpiresHeader" value="true" /> <property name="useCacheControlHeader" value="true" /> <property name="useCacheControlNoStore" value="true" /> <property name="cacheMappings"> <props> <prop key="/myUncachedController">0</prop> </props> </property>
-
==============================
3.나는 이것이 오래되었다는 것을 알고있다. 그러나 이것은 약간에게 도움이 될지도 모른다.
나는 이것이 오래되었다는 것을 알고있다. 그러나 이것은 약간에게 도움이 될지도 모른다.
캐시 할 때 더 많은 로직을 추가하고 싶지 않은 경우 사용자 정의 인터셉터를 작성할 수도 있습니다.
예를 들어 브라우저가 IE이거나 특정 URL에서만 응답에서 캐싱을 사용하지 않으려면 HandlerInterceptor 인터페이스를 확장하여 응답을 수행 할 수 있습니다.
그렇게함으로써 정확히 무슨 일이 일어나는지 많은 것을 제어 할 수 있습니다. 한 번에 모든 헤더를 설정하거나 각 컨트롤러의 응답에 변경 사항을 입력하는 것만 큼 쉽지는 않지만 그렇게 어렵지는 않으며 내 의견으로는 더 나은 장기적인 솔루션입니다. 일반적으로 봄에하는 법을 아는 것도 좋은 일입니다.
이것은 꽤 좋은 튜토리얼입니다 :
http://www.mkyong.com/spring-mvc/spring-mvc-handler-interceptors-example/
from https://stackoverflow.com/questions/4364622/how-to-set-header-no-cache-in-spring-mvc-3-by-annotation by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 보안 로그인 페이지 (0) | 2018.12.17 |
---|---|
[SPRING] JBoss의 서블릿에서 Spring 빈에 접근하기 (0) | 2018.12.17 |
[SPRING] Spring 3.1, Hibernate 4, SessionFactory (0) | 2018.12.17 |
[SPRING] Mockito : 실제 개체를 전용 @Autowired 필드로 주입합니다. (0) | 2018.12.16 |
[SPRING] property-placeholder에 의해 생성 된 속성에 대한 프로그래밍 방식의 액세스 (0) | 2018.12.16 |