Spring Boot 2.2.2.RELEASE 版本中文参考文档【3.1】

使用Spring Boot

本节将详细介绍如何使用Spring Boot。它涵盖了诸如构建系统,自动配置以及如何运行应用程序之类的主题。咱们还将介绍一些Spring Boot最佳实践。尽管Spring Boot并无什么特别的地方(它只是另外一个可使用的库),可是有一些建议可使您的开发过程更轻松一些。html

若是您是从Spring Boot开始的,那么在进入本节以前,您可能应该阅读入门指南git

3.1 构建系统

强烈建议您选择一个支持依赖关系管理而且可使用发布到“Maven Central”存储库的artifacts的构建系统。咱们建议您选择Maven或Gradle。可使Spring Boot与其余构建系统(例如Ant)一块儿使用,可是它们并无获得很好的支持。github

3.1.1 依赖管理

每一个Spring Boot版本都提供了它所支持的依赖关系的精选列表。实际上,您不须要为构建配置中的全部这些依赖项提供版本,由于Spring Boot会为您管理该版本。当您升级Spring Boot自己时,这些依赖项也会以一致的方式升级。spring

Tips: 您仍然能够指定版本,并在须要时覆盖Spring Boot的建议。

精选列表包含可与Spring Boot一块儿使用的全部spring模块以及完善的第三方库列表。该列表做为可与MavenGradle一块儿使用的标准物料清单(spring-boot-dependencies)提供。数据库

Warning: Spring Boot的每一个发行版都与Spring Framework的基本版本相关联。 强烈建议您不要指定其版本。

3.1.2 Maven

Maven用户能够从spring-boot-starter-parent项目继承来得到合理的默认值。 父项目提供如下功能: Java 1.8是默认的编译级别。 UTF-8源编码。 从spring-boot-dependencies pom继承的依赖管理部分,它管理公共依赖项的版本。 当在本身的pom中使用这些依赖关系时,能够为这些依赖关系省略\<version>标记。 具备从新打包执行ID的从新打包目标的执行。[An execution of the repackage goal with a repackage execution id.] 合理的资源过滤。 合理的插件配置(exec pluginGit commit IDshade)。 * 对application.properties和application.yml进行合理的资源过滤,包括profile-specific的文件(例如application-dev.properties和application-dev.yml)apache

请注意,因为application.properties和application.yml文件接受Spring样式的占位符(${…}),所以Maven过滤已更改成使用@ .. @占位符。(您能够经过设置一个名为resource.delimiter的Maven属性来覆盖它。)安全

继承父Starter

要将项目配置为从spring-boot-starter-parent继承,请设置pom文件的parent,以下所示:微信

1 <!-- Inherit defaults from Spring Boot -->
2 <parent>
3     <groupId>org.springframework.boot</groupId>
4     <artifactId>spring-boot-starter-parent</artifactId>
5     <version>2.2.2.RELEASE</version>
6 </parent>
Note: 您只须要为此依赖项指定Spring Boot版本号。若是导入其余启动器,则能够安全地省略版本号。

使用该设置,您还能够经过覆盖本身项目中的属性来覆盖各个依赖项。例如,要升级到另外一个Spring Data发布系列,能够将如下内容添加到pom.xml中:app

1 <!-- Inherit defaults from Spring Boot -->
2 <properties>
3     <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
4 </properties>
Tip: 查看 spring-boot-dependencies pom以获取受支持属性的列表。

在没有父POM的状况下使用Spring Boot

并不是每一个人都喜欢从spring-boot-starter-parent父POM继承。您可能须要使用本身的公司标准父级,或者可能但愿显式声明全部Maven配置。maven

若是您不想使用spring-boot-starter-parent,仍然能够经过使用scope = import依赖项来保留依赖项管理(而不是插件管理)的好处,以下所示:

 1 <dependencyManagement>
 2     <dependencies>
 3         <dependency>
 4             <!-- Import dependency management from Spring Boot -->
 5             <groupId>org.springframework.boot</groupId>
 6             <artifactId>spring-boot-dependencies</artifactId>
 7             <version>2.2.2.RELEASE</version>
 8             <type>pom</type>
 9             <scope>import</scope>
10         </dependency>
11     </dependencies>
12 </dependencyManagement>

 

如上所述,前面的示例设置不容许您使用属性来覆盖各个依赖项。为了得到相同的结果,须要在spring-boot-dependencies条目以前的项目的dependencyManagement中添加一个条目。 例如,要升级到另外一个Spring Data发布系列,能够将如下元素添加到pom.xml中:

 1 <dependencyManagement>
 2     <dependencies>
 3         <!-- Override Spring Data release train provided by Spring Boot -->
 4         <dependency>
 5             <groupId>org.springframework.data</groupId>
 6             <artifactId>spring-data-releasetrain</artifactId>
 7             <version>Fowler-SR2</version>
 8             <type>pom</type>
 9             <scope>import</scope>
10         </dependency>
11         <dependency>
12             <groupId>org.springframework.boot</groupId>
13             <artifactId>spring-boot-dependencies</artifactId>
14             <version>2.2.2.RELEASE</version>
15             <type>pom</type>
16             <scope>import</scope>
17         </dependency>
18     </dependencies>
19 </dependencyManagement>
Note: 在前面的示例中,咱们指定了BOM,可是能够以相同方式覆盖任何依赖项类型。

使用Spring Boot Maven插件

Spring Boot包含一个能够将项目打包为可执行jar的Maven插件。若是要使用插件,请将其添加到您的\<plugins>部分,如如下示例所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Note: 若是您使用了spring-boot-starter-parent,则只需添加该插件。除非您要更改父级中定义的设置,不然无需对其进行配置。

3.1.3 Gradle

3.1.4 Ant

3.1.5 启动器[Starters]

Starters是一系列便捷的,能够包含在你应用中的依赖项描述符[dependency descriptors]。您能够一站式获取所需的全部Spring和相关技术,从而省去遍历示例代码和遍历依赖描述符的负担。例如,若是要开始使用Spring和JPA进行数据库访问,在项目中包括spring-boot-starter-data-jpa依赖项便可。

入门程序包含许多启动项目并快速运行所需的依赖项,而且支持依赖传递。

关于名字叫什么

官方startter都遵循相似的命名方式:spring-boot-starter-*,其中 * 是特定类型的应用程序[application]。这种命名结构在您须要寻找starter时提供了便利。许多IDE中的Maven集成使您能够按名称搜索依赖项。例如,在安装了适当的Eclipse或STS插件的状况下,您能够在POM编辑器中按ctrl-space并键入“spring-boot-starter”以获取完整列表。

如“建立本身的Stater”部分中所述,第三方starter的命名不建议以spring-boot开头,由于它是为Spring Boot官方artifactId保留的。而是,第三方启动程序一般以项目名称开头。例如,一个名为thirdpartyproject的第三方启动程序项目一般会被命名为thirdpartyproject-spring-boot-starter。

Spring Boot在org.springframework.boot组下提供了如下应用程序的starters:

Table 1. Spring Boot application starters

Table 2. Spring Boot production starters

Table 3. Spring Boot technical starters

Spring Boot提供的starters pom都可在Github找到,参考地址:

Tip: 有关社区贡献的其余staters的列表,请参阅GitHub上spring-boot-starters模块中的 README文件

 

Spring Boot 2.2.2.RELEASE版本中文文档持续更新中~若有须要获取参考文档文件,关注公众号JavaSo,回复“参考文档”便可。


关注微信公众号,一块儿交流下咯~

相关文章
相关标签/搜索