在Spring5XML的WebContentInterceptor中设置cacheControlMappings,可以通过以下步骤完成:
spring-servlet.xml
,并在其中配置WebContentInterceptor
bean。<bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor">
<property name="cacheControl" value="no-cache" />
<property name="cacheSeconds" value="0" />
<property name="useExpiresHeader" value="true" />
<property name="useCacheControlHeader" value="true" />
<property name="useCacheControlNoStore" value="true" />
<property name="alwaysUseFullPath" value="true" />
<property name="cacheMappings">
<props>
<prop key="/path1/**">public, max-age=3600</prop>
<prop key="/path2/**">private, no-store</prop>
</props>
</property>
</bean>
HandlerMapping
bean,将WebContentInterceptor
与对应的URL路径进行关联。<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="webContentInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="/path1/**">someController1</prop>
<prop key="/path2/**">someController2</prop>
</props>
</property>
</bean>
HandlerAdapter
bean,用于处理请求。<bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<!-- Configure message converters if needed -->
</list>
</property>
</bean>
ViewResolver
bean,用于解析视图。<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
DefaultServletHandlerConfigurer
bean,用于处理静态资源。<mvc:default-servlet-handler />
RequestMappingHandlerMapping
bean,用于处理请求映射。<bean id="requestMappingHandlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="useSuffixPatternMatch" value="false" />
<property name="useTrailingSlashMatch" value="true" />
</bean>
以上配置完成后,WebContentInterceptor
将会拦截指定路径的请求,并根据cacheMappings
中的配置设置相应的缓存控制头信息。
对于cacheMappings
中的每个URL路径,可以设置不同的缓存控制策略。例如,/path1/**
可以设置为public, max-age=3600
,表示对于该路径下的资源,可以被公共缓存,并且最长缓存时间为3600秒。/path2/**
可以设置为private, no-store
,表示对于该路径下的资源,不允许被缓存。
推荐的腾讯云相关产品和产品介绍链接地址如下:
领取专属 10元无门槛券
手把手带您无忧上云