文章目录

  • 系列文章目录
  • 前言
  • 一、依赖管理
  • 二、Maven
  • 三、Spring Boot Maven Plugin
  • 四、Starters



前言

Spring Boot 建议选择一个支持依赖项管理并能够使用发布到“Maven Central”存储库的构件的构建系统。一般可以选择MavenGradle。让Spring Boot与其他构建系统(例如Ant)一起工作是可能的,但它们并没有得到很好的支持。本文只介绍常用的Maven

一、依赖管理

Spring Boot的每个版本都提供了一个它所支持的依赖项列表。在实践中,你不需要在构建配置中为这些依赖项提供一个版本,因为Spring Boot会为你管理它。当你升级Spring Boot本身时,这些依赖项也会以一致的方式升级。

二、Maven

maven项目引入Spring Boot框架有两种方式:

1. 继承spring-boot-starter-parent

<!-- Inherit defaults from Spring Boot -->
<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>3.0.0-M2</version>
</parent>

这种方式只需要指定Spring Boot parent版本号,如果需要引入其它的starter无需指定版本。

使用这种方式,还可以通过覆盖自己项目中的属性来覆盖各个依赖项。例如,要使用不同版本的SLF4J库,你需要将以下内容添加到pom.xml中:

<properties>
    <slf4j.version>1.7.30</slf4j.version>
</properties>

2. dependencyManagement

可能有一些原因让你不从spring-boot-starter-parent POM继承。你可能需要使用自己的公司标准父组件,或者你可能更喜欢显式声明所有Maven配置。

如果你不想使用spring-boot-starter-parent,你仍然可以通过使用一个import作用域的依赖项来保持依赖管理,如下所示:

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>3.0.0-M2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

正如上述例子所示,如果需要覆盖SLF4J的版本,此方式也可以实现:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>3.0.0-M2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

三、Spring Boot Maven Plugin

Spring Boot Maven Plugin在Apache Maven中提供了Spring Boot支持。它允许你打包可执行jarwar文件,运行Spring Boot应用程序,生成构建信息,并在运行集成测试之前启动Spring Boot应用程序。

要使用Spring Boot Maven Plugin,需要在pom.xmlplugins部分包含适当的XML,如下所示:

<project>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>getting-started</artifactId>
    <!-- ... -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

该插件提供了许多用户属性,已spring-boot开头,让你可以从命令行自定义配置。

spring boot 第三方接口 spring boot3_spring

$ mvn spring-boot:run -Dspring-boot.run.profiles=dev,local

四、Starters

Starter是在你应用中方便描述依赖关系的描述符。你可以获得所需的所有Spring和相关技术的一站式商店,而不必遍历复制粘贴大量依赖管理。例如,如果你想开始使用Spring和JPA进行数据库访问,只需要在你的项目中包含spring -boot-starter-data- jpa依赖项。

所有的官方Starter都遵循类似的命名模式;spring-boot-starter -*,其中*是特定类型的应用程序。当你需要找到初学者时,此命名结构将提供帮助。如果你需要自定义Starter,一般命名为thirdpartyproject-spring-boot-starter

以下应用Starter是由Spring Boot在org.springframework.boot组下提供的:

Name

Description

spring-boot-starter

auto-configuration , logging and YAML

spring-boot-starter-amqp

Spring AMQP and Rabbit MQ

spring-boot-starter-aop

Spring AOP and AspectJ

spring-boot-starter-artemis

JMS for Apache Artemis

spring-boot-starter-batch

Spring Batch

spring-boot-starter-cache

Spring Framework’s caching support

spring-boot-starter-data-cassandra

Spring Data Cassandra

spring-boot-starter-data-cassandra-reactive

Spring Data Cassandra Reactive

spring-boot-starter-data-couchbase

Spring Data Couchbase

spring-boot-starter-data-couchbase-reactive

Spring Data Couchbase

spring-boot-starter-data-elasticsearch

Spring Data Elasticsearch

spring-boot-starter-data-jdbc

Spring Data JDBC

spring-boot-starter-data-jpa

Spring Data JPA with Hibernate

spring-boot-starter-data-ldap

Spring Data LDAP

spring-boot-starter-data-mongodb

Spring Data MongoDB

spring-boot-starter-data-mongodb-reactive

Spring Data MongoDB Reactive

spring-boot-starter-data-neo4j

Spring Data Neo4j

spring-boot-starter-data-r2dbc

Spring Data R2DBC

spring-boot-starter-data-redis

Spring Data Redis and the Lettuce client

spring-boot-starter-data-redis-reactive

Spring Data Redis reactive and the Lettuce client

spring-boot-starter-data-rest

Spring Data REST

spring-boot-starter-freemarker

FreeMarker

spring-boot-starter-groovy-templates

Groovy Templates

spring-boot-starter-hateoas

Spring HATEOAS

spring-boot-starter-integration

Spring Integration

spring-boot-starter-jdbc

JDBC with the HikariCP connection pool

spring-boot-starter-jooq

jOOQ

spring-boot-starter-json

json

spring-boot-starter-mail

Spring Framework’s email

spring-boot-starter-mustache

Mustache views

spring-boot-starter-oauth2-client

Spring Security’s OAuth2/OpenID Connect client

spring-boot-starter-oauth2-resource-server

Security’s OAuth2 resource server

spring-boot-starter-quartz

Quartz

spring-boot-starter-rsocket

RSocket clients and servers

spring-boot-starter-security

Spring Security

spring-boot-starter-test

JUnit Jupiter, Hamcrest and Mockito

spring-boot-starter-thymeleaf

Thymeleaf views

spring-boot-starter-validation

Hibernate Validator

spring-boot-starter-web

Spring MVC Tomcat

spring-boot-starter-web-services

Spring Web Services

spring-boot-starter-webflux

Spring Framework’s Reactive Web

spring-boot-starter-websocket

Spring Framework’s WebSocket

spring-boot-starter-actuator

监控和管理应用程序