微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Boot应用程序在独立的servlet容器中进行战争

关于从spring启动应用程序构建war并在独立的servlet容器中运行它的一般问题.我似乎看起来似乎与Stack Overflow上的示例不一致.

答案here显示了几个月前我读到这样做的方式.我读了这篇here,但指南似乎已经改变了丢失实际的示例应用程序.

这里的“configure”方法引用了主要的Spring引导Application.class.

public class WebInitializer extends SpringBootServletinitializer {   

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

还有这些帖子herehere显示了引用SpringBootServletinitializer子类本身的“configure”方法.

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 {.........

我想知道选择这些不同的方式看似在春季靴子中实现相同的东西有问题吗?或者他们都同样工作,可以互换吗?

最佳答案
让你的主应用程序类扩展SpringBootServletinitializer(你问题中的Bootstrap)或使用一个单独的类(问题中的WebInitializer)归结为个人品味.我倾向于采用Bootstrap方法,但它们都以相同的方式工作;挑选你喜欢的.

如果您只是将应用程序部署到独立的servlet容器,那么您不需要main方法.如果要将应用程序作为可执行的war(java -jar my-app.war)运行,或者希望能够直接在IDE中运行它,即无需将IDE部署到IDE中,则使用main方法. servlet容器.

spring-boot-sample-Traditional说明​​了使用web.xml来引导Spring Boot应用程序.一般来说,除非您遇到Servlet 2.5容器,否则这不是推荐的方法.使用WebMvcConfigurerAdapter与WAR打包无关.查看其web.xml以查看相关的配置部分.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐