【发布时间】:2015-03-03 08:51:16
【问题描述】:
我创建了一个 Servlet(从 HttpServlet 扩展)并按照 3.0 规范进行了注释
@WebServlet(name="DelegateServiceExporter", urlPatterns={"/remoting/DelegateService"})
我在 Spring Boot 中的 @Configuration 类扫描这个 servlet 的包。但是,当我的 Spring Boot 应用程序启动时,它不会记录它已经在嵌入式 Tomcat 8.0.15 容器中部署了这个 servlet。
所以,我也将@Component 添加到我的servlet 中。现在,Spring Boot 注册 servlet(向我证明扫描包已正确设置),但随后它使用基于类名的 URL 模式注册它,使用驼峰式大小写。所以,这样更好 - 例如,我注册了一个 servlet,但 URL 映射错误!
2015-01-05 11:29:08,516 INFO (localhost-startStop-1) [org.springframework.boot.context.embedded.ServletRegistrationBean] Mapping servlet: 'delegateServiceExporterServlet' to [/delegateServiceExporterServlet/]
如何让 Spring Boot 自动加载所有 @WebServlet 带注释的 servlet 并尊重它们的 url 映射?
【问题讨论】:
-
你没有。 Spring Boot 使用不同的方式来配置和映射 servlet。
-
我已打开an issue 讨论是否有可能兑现
@WebServlet。 -
我得到了它与这里的建议一起工作。感谢大家!我找不到 Spring Boot 文档在哪里说它不支持 WebServlet 注释,所以这就是我感到困惑的原因。如果我错过了文档,请告诉我它写在哪里。否则,至少更新 Spring Boot 文档会有所帮助 - 例如,明确表示不支持 WebServlet 注释。 :)
标签: spring annotations spring-boot servlet-3.0 embedded-tomcat-8