我正在编写一个通过REST服务公开某些功能的应用程序。
为此,我正在使用Spring Boot 2,但是将其置于生产环境中的最佳方法是什么?
使用Java运行jar是个好主意吗?
答案 0 :(得分:2)
简短答案
是的,这是个好主意。
好答案
Spring Boot具有一个插件,该插件在JAR文件本身中添加了服务脚本(与Unix兼容)。这使得JAR文件在Unix / Linux环境中可执行,并且您可以轻松地将其作为服务安装。 https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html的节选如下:
要使用Maven创建“完全可执行”的jar,请使用以下插件配置:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
如果为Windows打包,则启动脚本用处不大,可以省略。您将需要在Windows上使用java -jar ...
来运行,或者安装服务包装器。 Spring Boot doco的另一段摘录:
可以使用winsw将Spring Boot应用程序作为Windows服务启动。
A(separately maintained sample)分步介绍了如何为Spring Boot应用程序创建Windows服务。
答案 1 :(得分:2)
您可以使用pom.xml中的以下代码使其完全可执行。您可以使用shell脚本运行,也可以作为systemv或initd服务运行。{Spring Boot DOC]。我发现这是best tutorial链接,它解释了多种运行即服务选项。您可能想看看production ready features的Spring文档。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>