我试图找到一种方法来更改在生产中作为战争部署的 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。
提前致谢!
Pedro
这并不难做到...你只需要转发默认映射...
@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 );
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)