我有一个使用Spring创建可执行war
文件的应用程序。创业很慢(3-6分钟)。我已经阅读了其他帖子,这似乎是Apache Tomcat 8的设置,如果unpackWars=false
那么性能很慢(https://bz.apache.org/bugzilla/show_bug.cgi?id=57251,https://github.com/spring-projects/spring-boot/issues/5200)。但更改unpackWars=true
可以帮助加快速度。但是,这些帖子指的是我无法访问的server.xml
文件,因为该项目使用的是嵌入式tomcat服务器。
我首先尝试查看我是否可以在application.properties
文件中设置某些设置,但我没有看到server
或server.tomcat
以外的任何内容能够使用。
我有一个TomcatConfig
类在启动时消耗,我想知道是否有办法将此unpackWars
属性设置为true以帮助加快开始时间。我注意到这个课程中发生的事情类似于这里发现的帖子:(https://www.mkyong.com/spring-boot/spring-boot-how-to-change-context-path/)
@Slf4j
public class TomcatConfig {
@Value("${httpPort}")
private int port;
@Bean
public TomcatEmbeddedServletContainerFactory tomcatFactory(){
return new TomcatEmbeddedServletContainerFactory(port);
}
@Bean
public EmbeddedServletContainerCustomizer tomcatCustomizer() throws URISyntaxException, UnknownHostException {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if(container instanceof TomcatEmbeddedServletContainerFactory){
TomcatEmbeddedServletContainerFactory containerFactory = (TomcatEmbeddedServletContainerFactory) container;
configureTomcat(containerFactory);
}
}
};
}
private void configureTomcat(TomcatEmbeddedServletContainerFactory cf) {
// configure unpackWars here somehow?
}
}