gpt4 book ai didi

独立 servlet 容器中的 Spring Boot 应用程序 war

转载 作者:行者123 更新时间:2023-12-04 16:59:54 25 4
gpt4 key购买 nike

关于从 Spring Boot 应用程序构建 war 并在独立的 servlet 容器中运行它的一般问题。我的文档似乎与 Stack Overflow 上的示例不一致。

答案here展示了我几个月前读到的这样做的方式。我读了这个 here ,但该指南似乎已更改丢失实际示例应用程序。

这里的“configure”方法引用了主要的spring boot Application.class。

public class WebInitializer extends SpringBootServletInitializer {   

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}

还有这些帖子 herehere显示引用 SpringBootServletInitializer 子类本身的“配置”方法。
public class BootStrap extends SpringBootServletInitializer {

public static void main(String[] args) {
SpringApplication.run(BootStrap.class, args);
}

@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(BootStrap.class);
}
}

还有一个主要的方法。

还有位于 https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples 的 spring-boot-sample-traditional 示例应用程序, 显示“WAR 包装”
做法不同
 public class WebConfig extends WebMvcConfigurerAdapter {.........

我想知道在 Spring Boot 中选择这些看似实现相同目标的不同方式是否存在问题?或者它们是否都同样有效并且可以互换?

最佳答案

让您的主应用程序类扩展 SpringBootServletInitializer (您的问题中的 Bootstrap)或使用单独的类(您的问题中的 WebInitializer)取决于个人品味。我的偏好是走Bootstrap方法,但它们都以相同的方式工作;选择你喜欢的。

如果您只想将应用程序部署到独立的 servlet 容器,则不需要 main 方法。如果您想将应用程序作为可执行 war ( java -jar my-app.war ) 运行,或者您希望能够直接在您的 IDE 中运行它,即无需让您的 IDE 将其部署到 servlet 容器,则使用 main 方法。
spring-boot-sample-traditional说明 web.xml 的使用引导一个 Spring Boot 应用程序。一般来说,除非您坚持使用 Servlet 2.5 容器,否则这不是推荐的方法。 WebMvcConfigurerAdapter的使用与 WAR 包装无关。看看它的web.xml查看相关配置。

关于独立 servlet 容器中的 Spring Boot 应用程序 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com