为JSPServlet设置配置选项的首选方法是什么,如checkInterval,keepgenerated,modificationTestInterval等?我试图改变它的原因是因为JSP Compilations存在一些奇怪的问题。我们使用可执行的war包装并将'server.tomcat.basedir'属性设置为指向本地可访问的文件夹。生成的jsp java源代码和类文件显示修改日期为1970年1月14日。在Windows资源管理器中,修改只显示为空。在linux上,我们对所有文件进行了触摸。但是一旦再次访问jsp文件,修改日期就会回溯到1970年。我们怀疑这会导致每次访问jsp文件时都会编译它们,从而减慢了速度。但是重新编译似乎只发生在linux环境中。有没有人遇到过这个问题?我们的环境:Spring Boot 1.2.2.BUILD-SNAPSHOT,Tomcat 8,JDK 1.8_025。
答案 0 :(得分:1)
您可以使用EmbeddedServletContainerCustomizer
@Bean
查找JSP servlet并配置其init参数。例如,在您的主@Configuration
课程中:
@Bean
public EmbeddedServletContainerCustomizer customizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
customizeTomcat((TomcatEmbeddedServletContainerFactory) container);
}
}
private void customizeTomcat(TomcatEmbeddedServletContainerFactory tomcat) {
tomcat.addContextCustomizers(new TomcatContextCustomizer() {
@Override
public void customize(Context context) {
Wrapper jsp = (Wrapper) context.findChild("jsp");
jsp.addInitParameter("modificationTestInterval", "10");
}
});
}
};
}
答案 1 :(得分:0)
或者您可以将参数添加到application.properties文件中,如下所述:
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
寻找:
server.jsp-servlet.init-parameters。* =#用于配置JSP servlet的Init参数
例如:
server.jsp-servlet.init-parameters.modificationTestInterval=10