构建系统

强烈建议你选择支持依赖性管理的构建系统,并且选择可以使用发布到"Maven Central"存储的依赖.我们建议你选择Maven或者Gradle。虽然可以让Spring Boot跟其他构建系统一起工作(例如:ant),但是它们不是最佳实践方案

依赖性管理

Spring Boot的每个版本都提供了它支持的依赖关系列表.在实践中,你不需要为你的配置中的任何依赖提供一个版本,因为Spring Boot已经管理它.当你升级Spring Boot本身时,这些依赖也会以一致的方式升级.

你仍然可以指定一个版本并覆盖Spring Boot的建议,如果你觉得有必要。

策划列表包含Spring Boot可以使用的所有spring模块以及第三方库的精选列表。 该列表可作为标准材料清单(Bills of Materials)(spring-boot-dependencies)使用,也可以使用MavenGradle的其他专用支持。

Spring Boot的每个版本都与Spring Framework的基本版本相关联,因此我们强烈建议您不要自行指定它的版本。

Maven

Maven用户可以从spring-boot-starter-parent项目继承以获取合理的默认值。 父项目提供以下功能:

  • Java 1.6作为默认编译器级别.
  • UTF-8源码编码。
  • 依赖关系管理部分,允许您省略常见依赖关系的标记(继承自spring-boot-dependencies POM)。
  • 敏感资源过滤
  • 敏感的插件配置(exec插件,surefire,git commit Id,shade)
  • application.properties和application.yml的特定profile文件的敏感资源过滤.(例如application-foo.properties and application-foo.yml)

最后一点:由于默认配置文件接受Spring样式占位符($ {...}),Maven过滤被改为使用@..@占位符(你可以用Maven属性resource.delimiter覆盖它)。

继承启动器父级

要将项目配置为继承spring-boot-starter-parent,只需设置

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.BUILD-SNAPSHOT</version>
    </parent>

只需要指定此依赖关系上的Spring Boot版本号。 如果导入其他启动器,则可以安全地忽略版本号。

使用该设置,您还可以通过覆盖您自己的项目中的属性来覆盖各个依赖项。 例如,要升级到另一个Spring Data版本系列,您可以将以下内容添加到pom.xml中。

    <properties>
        <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
    </properties>

检查spring-boot-dependenciespom以获取支持的属性列表。

使用Spring Boot而不使用parent POM

不是每个人都喜欢继承自spring-boot-starter-parent POM。 你可能有你需要使用的你自己的公司标准parent,或者你可能更喜欢显式声明所有的Maven配置。

如果你不想使用spring-boot-starter-parent,你仍然可以通过使用scope = import依赖关系来保持依赖关系管理(而不是插件管理)的好处:

    <dependencyManagement>
         <dependencies>
            <dependency>
                <!-- 从Spring Boot中导入依赖管理 -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.0.0.BUILD-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

该设置不允许您使用如上所述的属性覆盖各个依赖项。 要实现相同的结果,您需要在spring-boot-dependencies条目之前在项目的dependencyManagement中添加一个条目。 例如,要升级到另一个Spring Data版本系列,您可以将以下内容添加到pom.xml中。

    <dependencyManagement>
        <dependencies>
            <!-- Override Spring Data release train provided by Spring Boot -->
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-releasetrain</artifactId>
                <version>Fowler-SR2</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.0.0.BUILD-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

在上面的例子中,我们指定一个BOM,但是任何依赖类型都可以被覆盖。

更改java版本

spring-boot-starter-parent选择相当保守的Java兼容性。 如果你想遵循我们的建议,并使用更高的Java版本,你可以添加一个java.version属性:

    <properties>
        <java.version>1.8</java.version>
    </properties>

使用Spring Boot的Maven插件

Spring Boot包括一个Maven插件,可以将项目打包为可执行jar。 如果您想使用插件,请将插件添加到部分:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

如果你使用Spring Boot启动器的parent pom,你只需要添加插件,没有必要配置它,除非你想改变parent定义的设置。 由于我本人使用maven,所以gradle和ant的翻译就不做了,有需要的话请查看官网

启动器(Starters)

启动器是一组方便的依赖关系描述,你可以将他们包含在应用中。你可以得到一个一站式的所有Spring以及跟它相关的技术,而不必通过复制黏贴示例代码中的依赖关系.例如,如果你想要开始使用Spring和JPA进行数据库访问,只需要在项目中包含spring-boot-starter-data-jpa依赖项,你就可以使用了.

启动器包含了许多依赖项,你需要这些依赖项来快速创建和运行项目,并使用一致的受支持的传递依赖关系集.

名称中有什么? 所有官方启动器都遵循类似的命名模式; spring-boot-starter- ,其中是特定类型的应用程序。这种命名结构旨在帮助你需要找到一个启动器时,能够快速查找( 许多IDE中的Maven集成允许您按名称搜索依赖项。).例如,在安装了适当的Eclipse或者STS插件后,你可以简单地在pom编辑器中输入ctrl-space并输入"spring-boot-starter"获得完整列表. 如创建自己的启动器部分中所述,第三方启动器不应该以spring-boot开头,因为它保留用于官方的Spring启动工件.例如, acme的第三方启动器通常命名为acme-spring-boot-starter。

以下应用程序启动器由Spring Boot在org.springframework.boot组下提供:

名称 描述 Pom
spring-boot-starter-thymeleaf 使用Thymeleaf视图构建MVC Web应用程序 Pom
spring-boot-starter-data-couchbase 使用Couchbase面向文档的数据库和Spring Data Couchbase Pom
spring-boot-starter-artemis 使用Apache Artemis的JMS消息中间件 Pom
spring-boot-starter-web-services 使用Spring web service Pom
spring-boot-starter-mail 使用Java Mail和Spring Framework的邮件发送的支持 | Pom
spring-boot-starter-data-redis 使用spring data redis和jdeis client进行redis键值对数据存储 Pom
spring-boot-starter-web 使用spring boot构建web,包括RESTful.使用tomcate作为默认嵌入式容器 Pom
spring-boot-starter-data-gemfire 使用GemFire分布式数据存储和Spring Data GemFire Pom
spring-boot-starter-activemq 使用Apache ActiveMQ做jms消息传输 | 【Pom](https://github.com/spring-projects/spring-boot/tree/master/spring-boot-starters/spring-boot-starter-activemq/pom.xml)
spring-boot-starter-data-elasticsearch 使用Elasticsearch搜索和分析引擎和Spring Data Elasticsearch Pom
spring-boot-starter-integration 使用Spring Integration | Pom
spring-boot-starter-test 使用包括JUnit,Hamcrest和Mockito的库来测试Spring Boot应用程序 Pom
spring-boot-starter-jdbc 使用JDBC与Tomcat JDBC连接池 | Pom
spring-boot-starter-mobile 使用Spring Mobile构建Web应用程序 Pom
spring-boot-starter-validation 使用Java Bean验证与Hibernate验证程序 Pom
spring-boot-starter-hateoas 使用Spring MVC和Spring HATEOAS构建基于hypermedia-based的RESTful Web应用程序 Pom
spring-boot-starter-jersey 使用JAX-RS和Jersey构建RESTful Web应用程序。 spring-boot-starter-web的替代品 Pom
spring-boot-starter-data-neo4j 使用Neo4j图数据库和Spring Data Neo4j Pom
spring-boot-starter-websocket 使用Spring Framework的WebSocket支持构建WebSocket应用程序 Pom
spring-boot-starter-aop 面向切面的编程与Spring AOP和AspectJ | Pom
spring-boot-starter-amqp 使用Spring AMQP和Rabbit MQ Pom
spring-boot-starter-data-cassandra 使用Cassandra分布式数据库和Spring Data Cassandra Pom
spring-boot-starter-social-facebook 使用Spring Social Facebook Pom
spring-boot-starter-jta-atomikos 使用Atomikos的JTA事务 Pom
spring-boot-starter-security 使用Spring Security Pom
spring-boot-starter-mustache 使用Mustache视图构建MVC Web应用程序 Pom
spring-boot-starter-data-jpa 使用Spring Data JPA和Hibernate Pom
spring-boot-starter 核心启动器,包括自动配置支持,日志记录和YAML Pom
spring-boot-starter-groovy-templates 使用Groovy模板视图构建MVC Web应用程序 Pom
spring-boot-starter-freemarker 使用FreeMarker视图构建MVC Web应用程序 Pom
spring-boot-starter-batch 使用Spring Batch Pom
spring-boot-starter-social-linkedin 使用Spring Social LinkedIn Pom
spring-boot-starter-cache 使用Spring Framework缓存支持 Pom
spring-boot-starter-data-solr 使用带有Spring Data Solr的Apache Solr搜索平台 Pom
spring-boot-starter-data-mongodb 使用MongoDB(面向文档的数据库)和Spring Data MongoDB Pom
spring-boot-starter-jooq 使用jOOQ访问SQL数据库。 spring-boot-starter-data-jpa或spring-boot-starter-jdbc的替代方法 Pom
spring-boot-starter-jta-narayana Spring Boot Narayana JTA 启动器 Pom
spring-boot-starter-cloud-connectors 使用Spring Cloud连接器,这简化了连接到云平台中的服务,如Cloud Foundry和Heroku Pom
spring-boot-starter-jta-bitronix 使用bitronix的jta事务 Pom
spring-boot-starter-social-twitter 使用Spring Social Twitter Pom
spring-boot-starter-data-rest 使用Spring Data REST,通过REST暴露Spring数据存储库 Pom

除了应用启动器,以下启动器可用于添加生产就绪(production ready)功能:

名称 描述  Pom
spring-boot-starter-actuator 使用Spring Boot Actuator提供生产就绪功能,以帮助您监视和管理您的应用程序 Pom

最后,Spring Boot还包括一些可以排除或交换特定的技术的启动器:

名称 描述  Pom
spring-boot-starter-undertow 使用Undertow作为嵌入式servlet容器。 spring-boot-starter-tomcat的替代品 Pom
spring-boot-starter-jetty 使用Jetty作为嵌入式servlet容器。 spring-boot-starter-tomcat的替代品 Pom
spring-boot-starter-logging 使用Logback进行日志记录。 默认日志启动器 Pom
spring-boot-starter-tomcat 使用Tomcat作为嵌入式servlet容器。 spring-boot-starter-web使用的缺省servlet容器启动器 Pom
spring-boot-starter-log4j2 使用Log4j2进行日志记录。 spring-boot-starter-logging的替代方法 Pom

有关其他社区提供的启动器的列表,请参阅GitHub上spring-boot-startters模块中的README文件

Copyright © www.gitbook.com/@herryZ 2016 all right reserved,powered by Gitbook该文件修订时间: 2017-01-06 08:13:12

results matching ""

    No results matching ""