欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-23 22:04:02
使用Spring Boot 本节将详细介绍如何使用Spring Boot。它涵盖了诸如构建系统,自动配置以及如何运行应用程序之类的主题。我们还将介绍一些Spring Boot最佳实践。尽管Spring Boot并没有什么特别的地方(它只是另一个可以使用的库),但是有一些建议可以使您的开发过程更轻松一 ......

使用spring boot

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

如果您是从spring boot开始的,那么在进入本节之前,您可能应该阅读入门指南

3.1 构建系统

强烈建议您选择一个支持依赖关系管理并且可以使用发布到“maven central”存储库的artifacts的构建系统。我们建议您选择maven或gradle。可以使spring boot与其他构建系统(例如ant)一起使用,但是它们并没有得到很好的支持。

3.1.1 依赖管理

每个spring boot版本都提供了它所支持的依赖关系的精选列表。实际上,您不需要为构建配置中的所有这些依赖项提供版本,因为spring boot会为您管理该版本。当您升级spring boot本身时,这些依赖项也会以一致的方式升级。

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)

请注意,由于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中:

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配置。

如果您不想使用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

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

table 2. spring boot production starters

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

table 3. spring boot technical starters

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

spring boot提供的starters pom均可在github找到,参考地址:

tip: 有关社区贡献的其他staters的列表,请参阅github上spring-boot-starters模块中的readme文件

 

spring boot 2.2.2.release版本中文文档持续更新中~如有需要获取参考文档文件,关注公众号javaso,回复“参考文档”即可。


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

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