设置JSPServlet的配置选项(如checkInterval,keepgeneration,modificationTestInterval等)的首选方法是什么?我尝试更改它的原因是由于JSP编译存在一些奇怪的问题。我们正在使用可执行的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。
您可以使用EmbeddedServletContainerCustomizer @Bean来查找JSP servlet并配置其init参数。例如,在您的主@Configuration类中:
EmbeddedServletContainerCustomizer
@Bean
@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"); } }); } }; }