本专栏是对SpringBoot最新版本的官方文档翻译和整理,不会对着官方文档生硬翻译,只写了笔者认为值得记得,更多基础信息,敬请读者参考SpringBoot的英文版文档
3.3Upgrading from an Earlier Version of Spring Boot
SpringBoot升级的时候,一些属性可能会被重命名或者删除。SpingBoot提供了一个方法,在应用程序启动的时候可以分析应用程序的环境和打印诊断信息,还可以在运行的时候临时迁移属性。通过添加依赖来启用功能:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
注意:晚添加到环境中的属性,例如使用@PropertySource时,将不被考虑。完成迁移后,请确保从项目的依赖项中删除此模块。
4.Developing Your First Spring Boot Application
4.1. Creating the POM
我们首先要创建一个maven POM文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
<description/>
<developers>
<developer/>
</developers>
<licenses>
<license/>
</licenses>
<scm>
<url/>
</scm>
<url/>
<!-- Additional lines to be added here... -->
</project>
4.2. Adding Classpath Dependencies
SpringBoot提供了一系列的启动器,可以添加jar包到你的类路径,我们冒烟测试的程序,在POM文件的父部分使用spring-boot-starter-parent。它是一个特殊的启动器,提供一些很有用的Maven默认设置。也提供了using-boot-dependency-management,所以你可以省略版本标签。
你开发不同的应用程序,可以选择使用不同的"starters",比如我们要开发一个Web程序,我们可以使用spring-boot-starter-web。我们可以通过如下命令,查看当前项目的依赖树:
[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT
4.3.1. The @RestController and @RequestMapping Annotations
@RequestMapping提供了路由信息。它告诉Spring任何的Http请求,应该被映射到相应的路径。
@RestController 告诉Spring直接给调用者返回字符串
@RequestMapping和@RestController都是SpringMVC的注解,更多详情请查看SpringMVC官方文档。MVC section
4.3.2. The @EnableAutoConfiguration Annotation
这个注解告诉SpringBoot基于jar包依赖去预测你想怎么配置Spring,SpringBoot已经添加了Tomcat和SpringMVC依赖,自动配置程序假定你开发的是Web应用程序。
4.4. Running the Example
在你项目的目录下使用mvn:spring-boot:run命令启动你的项目。
4.5. Creating an Executable Jar
我们可以创建一个可执行的jar包,来运行我们的应用程序。它包含了所有编译过的class文件和项目中所使用到的所有依赖。
为了创建jar包,我们需要在pom文件中添加spring-boot-maven-plugin依赖。像这样:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
保存POM文件,执行mvn:package命令,你可以在target目录下看到多出来的一个jar包:myproject-0.0.1-SNAPSHOT.jar大约有10M。如果你想看里面的内容,你可以执行 jar tvf:
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
你应该也能看到一个original文件:myproject-0.0.1-SNAPSHOT.jar.original在target目录。这是maven在重新被SpringBoot打包之前创建的源文件。
如果要通过jar包启动项目的话,可以执行java -jar命令:
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar