【问题标题】:Does Spring Boot support servlet 2.5 auto-configuration?Spring Boot 是否支持 servlet 2.5 自动配置?
【发布时间】:2014-05-23 08:37:10
【问题描述】:

我想创建一个 Spring Boot 应用程序以部署在 Google AppEngine 基础架构上。 GAE 目前仅支持 servlet 2.5 Web 应用程序。

是否可以将 Spring Boot(使用自动配置)与老式 web.xml 结合使用?

例如,我可以使用 contextClass/contextConfigLocation 指向包含@EnableAutoConfiguration 的@Configration 类吗?

所有 Spring Boot 示例似乎都使用带有 main 方法的简单 Application 类来运行应用程序。所以我想知道 Spring Boot 是否支持使用 web.xml 作为启动应用程序的起点?

【问题讨论】:

    标签: java spring google-app-engine spring-boot servlet-2.5


    【解决方案1】:

    不止一个问题:

    • 没有什么可以阻止您使用 web.xml(它仍然是 Servlet 规范的一部分)。如今,大多数人更喜欢 Java 初始化程序。

    • @EnableAutoConfiguration 适用于任何应用程序上下文(它只使用 Spring 的特性)。

    • 但是开箱即用的 Spring Boot 没有知道 SpringApplicationContextLoaderListener,因此如果按照您的描述进行操作,您会错过 Boot 的一些好处。有一个你可能会觉得有用的here

    • Spring Boot Actuator 依赖于一些 Servlet 3.0 功能,因此您需要针对 2.5 环境的解决方法(有关详细信息,请参阅此spring-boot-legacy prototype)。

    有一个在 GAE 上运行的示例应用 here,当前部署在此处:http://dsyerboot.appspot.com/

    【讨论】:

    • 稍后我会看一下 GAE 示例。我知道在 GAE 上运行意味着执行器可能无法使用。
    • 是否有计划将 spring-boot-legacy 引入核心 spring-boot?
    • 我认为它永远是一个附加组件。目前它绝对还是一个原型,但我不介意添加功能和修复错误(当然欢迎拉取请求)。如果更多的人使用它,也许我们可以更有信心相信它可以工作并涵盖所有基础。
    • 顺便说一句,它可以通过在 web.xml 中使用 AnnotationConfigWebApplicationContext 并将 @EnableAutoConfiguration 添加到通过 contextConfigLocation 定义的 @Configuration 类来工作吗?
    • 有些事情会起作用,但是因为你不会使用SpringApplication 来创建应用程序上下文,所以你不会得到监听器和初始化器。其中一些可以使用ApplicationContextInitializers 添加回来,但最好还是坚持使用自定义ContextLoaderListener
    猜你喜欢
    • 2022-01-15
    • 2018-03-14
    • 2023-03-14
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多