将其打包到.war文件并将其部署在Tomcat/Jetty上?
如果可能的话,不要这样做。原因:使用嵌入式tomcat(或任何其他服务器运行时,如undertow,netty,jetty等),构建微服务架构要容易得多。
正如Josh Long曾经在他的一次春季IO演讲中所说的那样“make Jar, not War”
另一方面,如果你有一个现有的带有 servlet 容器的基础结构,并且已经有多个 application.wars 在这些 servlet 容器中运行,你所要做的就是将你的应用程序打包为 war 文件并将其移交给发布团队(或者更确切地说,你被迫重用现有的基础结构), 然后这是一个不同的故事...但是,科技界已经在远离这种做法。
同样,本着微服务的精神,本着spring boot的意图,我鼓励你使用嵌入式服务器并制作可运行的jar文件,而不是传统的部署。
编辑
如果你正在对你的应用程序进行 docker 化,你有 2 个选项可以将 tomcat 打包到你的“最终工件”中(通过“最终工件”,我的意思是 docker 镜像,而不是 jar。Jar在这里只是一个中间工件)。
- 使用嵌入式 tomcat,以便 tomcat 将打包在你的 jar 中,并使用 JVM docker 映像
或
- 从你的jar中排除tomcat,只需打包你的应用程序并使用tomcat Docker映像。
尽管如此,有一天,我都会选择第一个选项,因为这会使开发过程变得容易得多(这与说,加入新开发人员会更容易)。