11.3.3“主要”方法
我们的应用程序的最后一部分是 main 方法。这只是遵循应用程序入口点的Java约定的标准方法。我们的主要方法是通过调用 run 来委托Spring
Boot的 SpringApplication 类。SpringApplication 引导我们的应用程序,从Spring开始,然后启动自动配置的Tomcat Web服务器。我们
需要将 Example.class 作为参数传递给 run 方法,以告诉 SpringApplication 哪个是主要的Spring组件。还会传递 args 数组以公开任何命
令行参数。
11.4运行示例
此时,您的应用程序应该工作。由于您使用了 spring-boot-starter-parent POM,因此您可以使用有用的 run 目标来启动应用程序。从根
项目目录中键入 mvn spring-boot:run 以启动应用程序。您应该看到类似于以下内容的输出:
如果您打开Web浏览器到 localhost:8080 ,您应该看到以下输出:
Hello World!
要正常退出应用程序,请按 ctrl-c 。
11.5创建一个可执行的Jar
我们通过创建一个完全自包含的可执行jar文件来完成我们的示例,我们可以在生产中运行它。可执行jar(有时称为“fat jar”)是包含已编译类
以及代码需要运行的所有jar依赖项的归档。
可执行的jar和Java
Java没有提供加载嵌套jar文件的标准方法(jar文件本身包含在jar中)。如果您要分发自包含的应用程序,这可能会有问题。
为了解决这个问题,许多开发人员使用“超级”罐子。uber jar将所有应用程序依赖项中的所有类打包到一个存档中。这种方法的问题在于
很难看出应用程序中有哪些库。如果在多个罐子中使用相同的文件名(但具有不同的内容),也可能会有问题。
Spring Boot采用不同的方法,让你直接嵌套罐子。
要创建可执行jar,我们需要将 spring-boot-maven-plugin 添加到 pom.xml 。为此,请在 dependencies 部分下方插入以下行:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
spring-boot-starter-parent POM包含 <executions> 配置以绑定 repackage 目标。如果您不使用父POM,则需要自己声
明此配置。有关详细信息,请参阅插件文档。
保存 pom.xml 并从命令行运行 mvn package ,如下所示:
$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] .... ..
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.1.1.RELEASE:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
如果你查看 target 目录,你应该看到 myproject-0.0.1-SNAPSHOT.jar 。该文件大小应为10 MB左右。如果要查看内部,可以使
用 jar tvf ,如下所示:
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
您还应该在 target 目录中看到一个名为 myproject-0.0.1-SNAPSHOT.jar.original 的小文件。这是Maven在Spring Boot重新打包之前创
建的原始jar文件。
要运行该应用程序,请使用 java -jar 命令,如下所示:
和以前一样,要退出应用程序,请按 ctrl-c 。