资讯专栏INFORMATION COLUMN

Spring Boot 参考指南(构建系统)

thursday / 2493人阅读

摘要:构建系统强烈建议你选择一个支持依赖管理的构建系统,并且可以使用发布到中心存储库的工件。例如,要升级到另一个,你可以将以下元素添加到你的在前面的示例中,我们指定了一个,但是任何依赖类型都可以以相同的方式被覆盖。

13. 构建系统

强烈建议你选择一个支持依赖管理的构建系统,并且可以使用发布到“Maven中心”存储库的工件。我们建议你选择Maven或Gradle,可以让Spring Boot与其他构建系统(例如Ant)一起工作,但是它们并不是特别受支持。

13.1 依赖关系管理

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

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

经过管理的列表包含所有spring模块,你可以使用spring Boot以及一个经过细化的第三方库列表,这个列表可以作为一个标准的材料清单(spring-boot-dependencies),它可以与Maven和Gradle一起使用。

Spring Boot的每个版本都与Spring框架的一个基本版本相关联,我们强烈建议你不要指定它的版本。
13.2 Maven

Maven用户可以从spring-boot-starter-parent项目继承来获得合理的默认值,父项目提供了以下特性:

Java 1.8作为默认的编译器级别

utf-8编码

依赖关系管理部分,继承自spring-boot-dependenciespom,管理通用依赖项的版本,这个依赖项管理允许你在自己的pom中使用这些依赖项时省略<版本>标记。

合理的资源过滤

合理的插件配置(exec插件,Git commit ID和shade)。

application.properties和指定属性的文件的application.yml(例如,application-dev.propertiesapplication-dev.yml) 的合理资源过滤。

注意,由于application.propertiesapplication.yml文件接受Spring样式的占位符(${…}),Maven过滤被更改为使用@..@占位符。(你可以通过设置一个名为resource.delimiter的Maven属性来覆盖它。)

13.2.1 继承启动器的父POM

要将你的项目配置为从spring-boot-starter-parent继承,请将parent设置为:


 
  org.springframework.boot 
  spring-boot-starter-parent   
  2.0.5.RELEASE
你应该仅在此依赖项上指定Spring Boot版本号,如果你导入额外的启动器,你可以安全地省略版本号。

通过这种设置,你还可以通过在自己的项目中覆盖一个属性来覆盖单个依赖项。例如,要升级到另一个Spring Data release train,你需要将以下内容添加到你的pom.xml:

 
  Fowler-SR2
检查spring-boot-dependencies pom,以获得支持的属性列表。
13.2.2 使用没有父POM的Spring Boot

并不是每个人都喜欢从spring-booot-starter-parentPOM继承,你可能有你自己的企业标准父类,你需要使用它们,或者你可能倾向于显式地声明所有的Maven配置。

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


  
    
      
      org.springframework.boot 
      spring-boot-dependencies   
      2.0.5.RELEASE 
      pom
      import 
    
  

前面的示例设置不允许你使用属性来覆盖单个依赖项,如上所述。为了达到同样的结果,在spring-boot-dependencies进入之前,需要对你的项目dependencyManagement添加一个条目。例如,要升级到另一个Spring Data release train,你可以将以下元素添加到你的pom.xml:

  
  
     
      
        org.springframework.data 
        spring-data-releasetrain    
        Fowler-SR2
        pom
        import
     
     
       org.springframework.boot 
       spring-boot-dependencies    
       2.0.5.RELEASE pom
       import 
     
   
在前面的示例中,我们指定了一个BOM,但是任何依赖类型都可以以相同的方式被覆盖。
13.2.3 使用Spring Boot Maven插件

Spring Boot包括一个Maven插件,它可以将项目打包为可执行jar,如果你想要使用它,请将插件添加到你的部分,如下面的示例所示:


  
     
      org.springframework.boot 
      spring-boot-maven-plugin
    
  
如果你使用Spring Boot starter parent pom,你只需要添加插件,不需要对其进行配置,除非你想更改parent中定义的设置。
13.3 Gradle

要了解使用Gradle的Spring Boot,请参考Spring Boot的Gradle插件的文档:

参考(HTML和PDF)

API

13.4 Ant

可以使用Apache Ant+Ivy构建Spring Boot项目,spring-boot-antlib“AntLib”模块也可用来帮助Ant创建可执行的jar。

声明依赖关系,典型的ivy.xml文件看起来像是下面的例子:


    
    
        
         
    
    
        
    

一个典型的buld.xml看起来像是下面的例子:


  

   
     
  

   
    
  

   
     
  

  
     
  
  
     
       
          
     
   
  
如果你不想使用spring-boot-antlib模块,请参见第87.9节,“从Ant构建一个可执行的存档,而不使用spring-boot-antlib” “How-to”。
13.5 Starter

Starters是一组方便的依赖描述符,你可以将它们包括在应用程序中,你可以获得所需的所有Spring和相关技术的一站式服务,而无需搜索示例代码和复制粘贴依赖描述符的负载。例如,如果你想要开始使用Spring和JPA进行数据库访问,请在项目中包含Spring-boot-starter-data-JPA依赖项。

starters包含大量的依赖项,你需要通过一个一致的、受支持的管理传递依赖集来快速地启动项目并运行。

叫什么名称

所有官方 starters都遵循类似的命名模式;spring-boot-starter-*,其中*是一种特殊类型的应用程序。这种命名结构旨在帮助你找到一个starter,许多IDE中的Maven集成让你可以通过名称搜索依赖项。例如,如果安装了适当的Eclipse或STS插件,你可以在POM编辑器中按下ctrl-space,并在一个完整的列表中键入“spring-boot-starter”。

正如在“创建你自己的starter”部分中所解释的,第三方starter不应该从Spring-Boot开始,因为它是为官方Spring Boot工件预留的。相反,第三方starter通常以项目的名称开始,例如,一个名为thirdpartyproject的第三方启动项目通常会被命名为thirdpartyproject-spring-boot-starter

下列应用程序starter由org.springframework.boot组下的Spring Boot提供:

表13.1. Spring Boot应用程序starter

名称 描述 Pom
spring-boot-starter 核心启动器,包括自动配置支持,日志记录和YAML Pom
spring-boot-starter-activemq 使用Apache ActiveMQ的JMS消息传递启动器 Pom
spring-boot-starter-amqp 使用Spring AMQP和Rabbit MQ的启动器 Pom
spring-boot-starter-aop 使用Spring AOP和AspectJ进行面向切面编程的启动器 Pom
sspring-boot-starter-artemis 使用Apache Artemis的JMS消息传递启动器 Pom
spring-boot-starter-batch 使用Spring batch的启动器 Pom
spring-boot-starter-cache 使用Spring框架缓存支持的启动器 Pom
spring-boot-starter-cloud-connectors 使用Spring Cloud连接器,它简化了连接到云平台的服务,如Cloud Foundry和Heroku Pom
spring-boot-starter-data-cassandra 使用Cassandra分布式数据库和Spring Data Cassandra的启动器 Pom
spring-boot-starter-data-cassandra-reactive 使用Cassandra分布式数据库和Spring Data Cassandra Reactive的启动器 Pom
spring-boot-starter-data-couchbase 使用Couchbase面向文档的数据库和Spring Data Couchbase的启动器 Pom
spring-boot-starter-data-couchbase-reactive 使用Couchbase面向文档的数据库和Spring Data Couchbase Reactive的启动器 Pom
spring-boot-starter-data-elasticsearch 使用Elasticsearch搜索和分析引擎与Spring Data Elasticsearch的启动器 Pom
spring-boot-starter-data-jpa 使用Hibernate的Spring Data JPA启动器 Pom
spring-boot-starter-data-ldap 使用Spring Data LDAP的启动器 Pom
spring-boot-starter-data-mongodb 使用MongoDB面向文档数据库和Spring Data MongoDB的启动器 Pom
spring-boot-starter-data-mongodb-reactive 使用MongoDB面向文档数据库和Spring Data MongoDB Reactive的启动器 Pom
spring-boot-starter-data-neo4j 使用Neo4j图形数据库和Spring Data Neo4j的启动器 Pom
spring-boot-starter-data-redis 使用Redis键值数据存储和Spring Data Redis和Lettuce客户端的启动器 Pom
spring-boot-starter-data-redis-reactive 使用Redis键值数据存储和Spring Data Redis Reactive和Lettuce客户端的启动器 Pom
spring-boot-starter-data-rest 使用Spring Data REST公开Spring Data存储库的启动器 Pom
spring-boot-starter-data-solr 使用Spring Data Solr的Apache Solr搜索平台的启动器 Pom
spring-boot-starter-freemarker 使用FreeMarker视图构建MVC web应用程序的启动器 Pom
spring-boot-starter-groovy-templates 使用Groovy模板视图构建MVC web应用程序的启动器 Pom
spring-boot-starter-hateoas 使用Spring MVC和Spring HATEOAS构建基于超媒体的RESTful web应用程序的启动器 Pom
spring-boot-starter-integration 使用Spring Integration的启动器 Pom
spring-boot-starter-jdbc 使用JDBC与HikariCP连接池的启动器 Pom
spring-boot-starter-jersey 使用JAX-RS和Jersey构建基于RESTful的web应用程序的启动器,另一种选择spring-boot-starter-web Pom
spring-boot-starter-jooq 使用jOOQ访问SQL数据库的启动器,另一种选择是spring-boot-starter-data-jpaspring-boot-starter-jdbc Pom
spring-boot-starter-json 阅读和编写json的启动器 Pom
spring-boot-starter-jta-atomikos 使用Atomikos的JTA事务的启动器 Pom
spring-boot-starter-jta-bitronix 使用Bitronix的JTA事务的启动器 Pom
spring-boot-starter-jta-narayana 使用Narayana的JTA事务的启动器 Pom
spring-boot-starter-mail 使用Java Mail和Spring框架的email发送支持的启动器 Pom
spring-boot-starter-mustache 使用Mustache视图构建web应用程序的启动器 Pom
spring-boot-starter-quartz 使用Quartz调度器的启动器 Pom
spring-boot-starter-security 使用Spring Security的启动器 Pom
spring-boot-starter-test 使用包括JUnit、Hamcrest和Mockito来测试Spring Boot 应用程序的启动器 Pom
spring-boot-starter-thymeleaf 使用Thymeleaf视图构建MVC web应用程序的启动器 Pom
spring-boot-starter-validation 使用Hibernate验证器验证Java Bean的启动器 Pom
spring-boot-starter-web 使用Spring MVC构建web(包括RESTful)应用程序的启动器,使用Tomcat作为默认的嵌入式容器 Pom
spring-boot-starter-web-services 使用Spring Web Services的启动器 Pom
spring-boot-starter-webflux 使用Spring框架的Reactive Web支持构建WebFlux应用程序的启动器 Pom
spring-boot-starter-websocket 使用Spring框架的WebSocket支持构建WebSocket应用程序的启动器 Pom

除了应用程序starter之外,下面的启动器还可以用于添加生产就绪特性:

表13.2. Spring Boot生产starter

名称 描述 Pom
spring-boot-starter-actuator 使用Spring Boot Actuator提供生产就绪特性,帮助你监视和管理应用程序的启动器 Pom

最后,Spring Boot还包括以下启动器,如果你想要排除或交换特定的技术方面,可以使用:

表13.3.Spring boot技术型的启动器

名称 描述 Pom
spring-boot-starter-jetty 使用Jetty作为嵌入式servlet容器的启动器,替代spring-boot-starter-tomcat Pom
spring-boot-starter-log4j2 使用Log4j2进行日志记录的启动器,替代spring-boot-starter-logging Pom
spring-boot-starter-logging 使用Logback进行日志记录的启动器,默认的日志起动器 Pom
spring-boot-starter-reactor-netty 使用Reactor Netty作为嵌入式reactive HTTP服务器的启动器 Pom
spring-boot-starter-tomcat 使用Tomcat作为嵌入式servlet容器的启动器,默认的servlet容器启动器使用spring-boot-starter-web Pom
spring-boot-starter-undertow 使用Undertow作为嵌入式servlet容器的启动器,替代spring-boot-starter-tomcat Pom
对于一个附加的社区贡献starter列表,请参阅GitHub上的spring-boot-starters模块中的README文件。
上一篇:开发你的第一个Spring Boot应用程序 下一篇:结构化你的代码

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69612.html

相关文章

  • Spring Boot 参考指南(目录)

    摘要:参考指南使你可以轻松地创建可运行的独立的生产级的基于的应用程序,我们对平台和第三方库有自己的看法,这样你就可以以最低限度工作开始了,大多数应用程序都需要很少的配置。文档本节简要概述了参考文档,它充当文档其余部分的映射。 Spring Boot 参考指南 Spring Boot使你可以轻松地创建可运行的独立的、生产级的基于Spring的应用程序,我们对Spring平台和第三方库有自己的看...

    awesome23 评论0 收藏0
  • Spring Boot 参考指南Spring Boot文档)

    摘要:关于文档参考指南可用如下方式最新的副本可以在中找到。尝试操作文档,它们为最常见的问题提供解决方案。学习基础,构建在许多其他项目上,网站提供丰富的参考文档,如果你要从开始,尝试其中一个指南。我们对进行监视,以解决带有标记的问题。 1. 关于文档 Spring Boot 参考指南可用如下方式: HTML PDF EPUB 最新的副本可以在 docs.spring.io/spring-b...

    zhjx922 评论0 收藏0
  • Spring Boot 参考指南(安装 Spring Boot

    摘要:安装可以与经典开发工具一起使用,也可以作为命令行工具安装。下面的示例展示了一个典型的文件安装命令行接口是一个命令行工具,你可以使用它来快速地实现的原型。 10. 安装Spring Boot Spring Boot可以与经典Java开发工具一起使用,也可以作为命令行工具安装。无论哪种方式,都需要Java SDK v1.8或更高版本。在开始之前,你应该使用以下命令检查当前的Java安装: ...

    Donald 评论0 收藏0
  • Spring Boot 参考指南Spring Boot介绍)

    摘要:我们的主要目标是为所有开发提供一个非常快的广泛可访问的入门体验。要跳出固有的思维模式,但是当需求开始偏离默认设置时,要迅速避开。提供大型项目如嵌入式服务器安全性指标健康检查和外部化配置所共有的一系列非功能特性。系统要求需要或和或以上。 8. Spring Boot介绍 Spring Boot使你可以轻松地创建可运行的独立的、生产级的基于Spring的应用程序,我们对Spring平台和第...

    GraphQuery 评论0 收藏0
  • Spring Boot 参考指南(运行你的应用程序)

    摘要:从运行你可以从运行应用程序作为简单的应用程序,但是,你首先需要导入你的项目,导入步骤取决于你的和构建系统。如果你不小心运行了两次应用程序,你你会看到一个错误,用户可以使用按钮而不是按钮来确保任何现有实例都已关闭。 19. 运行你的应用程序 将你的应用程序打包为jar并使用嵌入式HTTP服务器的最大优点之一是,你可以像对待其他应用程序一样运行应用程序,调试Spring Boot应用程序也...

    JayChen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<