SpringBoot中,嵌入环境中的Tomcat忽略ServletContainerInitializer 4年前

按照@philwebb说法,嵌入式环境下,SpringBoot有意忽略javax.servlet.ServletContainerInitializer,原因:

The search algorithm used by the containers was problematic. It also causes problems when you want to develop an executable WAR as you often want a javax.servlet.ServletContainerInitializer for the WAR that is not executed when you run java -jar.

解决方案:

1. 注册org.springframework.boot.context.embedded.ServletContextInitializer类型的Bean代替ServletContainerInitializer。

2. 直接向容器注册Servlet和Filter。

3. 向容器注册ServletRegistrationBean和FilterRegistrationBean。

参考:

[1]https://github.com/spring-projects/spring-boot/issues/321

[2]https://github.com/spring-projects/spring-boot/issues/522

r
ryRubyy
那年的春天,那年的三月。你给我一个承诺,我就哭了。你给我一段爱情,我就真的站在这里舍不得走了。
4
发布数
2
关注者
1497
累计阅读

热门教程文档

Python
76小节
Next
43小节
React Native
40小节
Spring Boot
24小节
Redis
14小节
广告