我试图找到一种方法来更改作为生产环境中的战争而部署的spring-boot应用程序的默认欢迎页面,但是如果没有web.xml文件,我将找不到一种方法。
根据文档,我们可以使用带有以下代码的EmbeddedServletContainerFactory来做到这一点:
@Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); TomcatContextCustomizer contextCustomizer = new TomcatContextCustomizer() { @Override public void customize(Context context) { context.addWelcomeFile("/<new welcome file>"); } }; factory.addContextCustomizers(contextCustomizer); return factory; }
虽然,当我们创建一个war文件并将其部署到tomcat而不使用嵌入式Tomcat时,它没有做任何事情。
任何的想法?如果确实需要添加一个web.xml文件,我们该如何做并且仍然使用spring boot?我们是否应该将Application bean(带有main方法)指定为DispatcherServlet的应用程序上下文?该文档对此不太清楚。
较早的Servlet容器不支持Servlet 3.0中使用的ServletContextInitializer引导过程。您仍然可以在这些容器中使用Spring和Spring Boot,但是您将需要向应用程序中添加web.xml并将其配置为通过DispatcherServlet加载ApplicationContext。
提前致谢!
这并不难…您只需要转发默认映射…
@Configuration public class DefaultView extends WebMvcConfigurerAdapter{ @Override public void addViewControllers( ViewControllerRegistry registry ) { registry.addViewController( "/" ).setViewName( "forward:/yourpage.html" ); registry.setOrder( Ordered.HIGHEST_PRECEDENCE ); super.addViewControllers( registry ); } }