大佬教程收集整理的这篇文章主要介绍了仅在构建 WAR 时才设置 Servlet 上下文,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在从 Spring WebInitializer
迁移到 Spring boot 2.5.0 SpringBootServleTinitializer
我们需要为我们的 Servlet 调度器添加一个上下文路径,代码如下:
@SpringBootApplication(exclude = { JmsautoConfiguration.class,ActiveMQautoConfiguration.class,SecurityautoConfiguration.class,ManagementWebSecurityautoConfiguration.class })
public class WebServerConfig extends SpringBootServleTinitializer implements ApplicationContextAware {
@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> webServerFactoryCustomizer() {
return factory -> {
factory.setRegisterDefaultServlet(true);
factory.setcontextpath("/servlet");
};
}
}
运行 Maven WAR 常规 tomcat 8.5 时,未设置 Servlet 上下文,请记录:
o.a.c.c.C.[Catalina].[localhost].[/] : Initializing Spring dispatcherServlet 'dispatcherServlet'
常规主
public static voID main(String[] args) {
SpringApplication.run(WebServerConfig.class,args);
}
运行嵌入式 tomcat 代码时按预期工作:
o.a.c.c.C.[.[localhost].[/servlet] : Initializing Spring dispatcherServlet 'dispatcherServlet'
@H_124_2@maven pom:
<dependency>
<groupID>org.springframework.boot</groupID>
<artifactID>spring-boot-starter-web</artifactID>
<version>${springframework.boot-version}</version>
</dependency>
<dependency>
<groupID>org.springframework.boot</groupID>
<artifactID>spring-boot-starter-tomcat</artifactID>
<version>${springframework.boot-version}</version>
<scope>provIDed</scope>
</dependency>
我也有 configure
方法:
@OverrIDe
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
return builder.sources(WebServerConfig.class);
}
在构建 WAR 时,我是否缺少启用 Servlet 上下文的代码/属性?
我发现老 question 和 question2 除了使用不同的战争名称外没有真正的答案。
使用以下应用程序属性来设置 Spring Boot 应用程序的上下文路径。 如果您使用的是 yaml 配置。
server:
servlet:
context-path: /servlet
如果您使用 application.properties
server.servlet.context-path = /servlet
,
我们通过在 SpringApplicationBuilder
中添加属性解决了这个问题:
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
Properties bootProperties = new Properties();
bootProperties.setProperty("spring.mvc.servlet.path","/servlet");
return builder.sources(WebServerConfig.class).properties(bootProperties);
}
以上是大佬教程为你收集整理的仅在构建 WAR 时才设置 Servlet 上下文全部内容,希望文章能够帮你解决仅在构建 WAR 时才设置 Servlet 上下文所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。