SpringBoot官⽅⽂档中⽂版-2.构建系统
前⾔
这是 SpringBoot 官⽅⽂档中⽂翻译版系列第⼆篇⽂章。
上⼀篇是:
根据官⽹的顺序,从构建系统,到将应⽤程序打包⽤于⽣产,是官⽹中这⼀章的内容,因为篇幅较长,故拆分成若⼲章节。
使⽤ SpringBoot 进⾏开发
本节将更详细地介绍如何使⽤ Spring Boot。它涵盖了构建系统、⾃动配置以及如何运⾏应⽤程序等主题。我们还将介绍⼀些 Spring Boot 的最佳实践。尽管 Spring Boot 没有什么特别之处(它只是您可以使⽤的另⼀个库),但是有⼀些建议,如果遵循这些建议,将使您的开发过程稍微容易⼀些。
如果您正在开始使⽤ Spring Boot,那么在深⼊本节之前,您可能应该阅读。
构建系统
强烈建议您选择⽀持依赖项管理并能够使⽤发布到 “Maven Central” 存储库的构件的构建系统。我们建议您选择 Maven 或 Gradle。可以让Spring Boot 与其他构建系统(例如Ant)⼀起⼯作,但它们并没有得到很好的⽀持。
1. 依赖管理
Spring Boot 的每个版本都提供了它所⽀持的依赖项列表。实际上,您不需要在构建配置中为这些依赖项提供⼀个版本,因为 Spring Boot 会为您管理它。当您升级 Spring Boot 本⾝时,这些依赖项也会以⼀致的⽅式升级。
提⽰:如果需要的话,您仍然可以指定⼀个版本并覆盖 Spring Boot 的建议。
这个列表包含了所有可以与 Spring Boot ⼀起使⽤的 Spring 模块,以及⼀个改进的第三⽅库列表。该列表作为标准的材料清单(spring-boot-dependencies)可⽤,可以与 Maven 和 Gradle ⼀起使⽤。
警告:Spring Boot 的每个版本都与 Spring 框架的⼀个基本版本相关联。我们强烈建议您不要指定它的版本。
2. Maven
要了解如何使⽤ Spring Boot 与 Maven,请参阅 Spring Boot 的 Maven 插件的⽂档:
⽂档 ( 和 )
3. Gradle
要了解如何在 Gradle 中使⽤ Spring Boot,请参考 Spring Boot 的 Gradle 插件的⽂档:
⽂档 ( and )
4. Ant
可以使⽤ Apache Ant+Ivy 构建 Spring Boot 项⽬。spring-boot-antlib“AntLib” 模块还可以帮助 Ant 创建可执⾏ jar。
要声明依赖关系,⼀个典型的 l ⽂件看起来像下⾯的例⼦:
<ivy-module version="2.0">
<info organisation="org.springframework.boot" module="spring-boot-sample-ant" />
<configurations>
<conf name="compile" description="everything needed to compile this module" />
<conf name="runtime" extends="compile" description="everything needed to run this module" />
</configurations>
<dependencies>
<dependency org="org.springframework.boot" name="spring-boot-starter"
rev="${spring-boot.version}" conf="compile" />
</dependencies>
</ivy-module>
⼀个典型的 l ⽰例如下:
<projectspringboot aop
xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:spring-boot="antlib:org.springframework.boot.ant"
name="myapp" default="build">
<property name="spring-boot.version" value="2.5.3" />
<target name="resolve" description="--> retrieve dependencies with ivy">
<ivy:retrieve pattern="lib/[conf]/[artifact]-[type]-[revision].[ext]" />
</target>
<target name="classpaths" depends="resolve">
<path id="compile.classpath">
<fileset dir="lib/compile" includes="*.jar" />
</path>
</target>
<target name="init" depends="classpaths">
<mkdir dir="build/classes" />
</target>
<target name="compile" depends="init" description="compile">
<javac srcdir="src/main/java" destdir="build/classes" classpathref="compile.classpath" />
</target>
<target name="build" depends="compile">
<spring-boot:exejar destfile="build/myapp.jar" classes="build/classes">
<spring-boot:lib>
<fileset dir="lib/runtime" />
</spring-boot:lib>
</spring-boot:exejar>
</target>
</project>
提⽰:如果您不想使⽤spring-boot-antlib模块,请参阅 " How-to "。
5. Starters
starters 是⼀组⽅便的依赖项描述符,您可以将其包含在应⽤程序中。您可以获得所需的所有 Spring 和相关技术的⼀站式服务,⽽⽆需遍寻⽰例代码和复制粘贴依赖描述符。例如,如果您想开始使⽤ Spring 和 JPA 进⾏数据库访问,请在项⽬中包含Spring -boot-start -data- JPA 依赖项。
starters 包含许多依赖项,您需要这些依赖项才能使项⽬快速启动和运⾏,并具有⼀组⼀致的、受⽀持的托管传递依赖项。
所有官⽅的 starters 都遵循类似的命名模式:Spring-boot-starter -,其中是⼀种特殊类型的应⽤程序。这个命名结构旨在帮助您到初学者。许多 ide 中的 Maven 集成允许您按名称搜索依赖项。例如,安装了适当的 Eclipse 或 Spring Tools 插件后,您可以在 POM 编辑器中按ctrl-space 并输⼊“Spring -boot-starter”来获得完整的列表。
正如在“创建您⾃⼰的 starter”⼀节中解释的那样,第三⽅ starters 的名字不应该以 Spring - Boot 开头,因为它是为官⽅ Spring Boot ⼯件保留的。相反,第三⽅ starters 通常以项⽬的名称开始。例如,名为 thirdpartyproject 的第三⽅ starter 项⽬通常被命名为 thirdpartyproject-spring-boot-starter。
下⾯的 starters 是由 Spring Boot 在 org.springframework.boot 组下提供的:
表1: Spring Boot application starters
名称描述
spring-boot-starter核⼼ starter,包括⾃动配置⽀持、⽇志记录和 YAML
spring-boot-starter-activemq使⽤ Apache ActiveMQ 的 JMS 消息传递 starter
spring-boot-starter-amqp使⽤ Spring AMQP 和 Rabbit MQ 的 starter
spring-boot-starter-aop使⽤ Spring AO P和 AspectJ 进⾏⾯向⽅⾯编程的 starter
spring-boot-starter-artemis使⽤ Apache Artemis 的进⾏ JMS 消息传递的 starter
spring-boot-starter-batch使⽤ Spring Batch 的 starter
spring-boot-starter-cache使⽤ Spring 框架的缓存⽀持的 starter
spring-boot-starter-data-cassandra使⽤ Cassandra 分布式数据库和 Spring Data Cassandra 的 starter
spring-boot-starter-data-cassandra-
reactive使⽤ Cassandra 分布式数据库和 Spring Data Cassandra Reactive 的 starter
spring-boot-starter-data-couchbase使⽤ Couchbase ⾯向⽂档的数据库和 Spring Data Couchbase 的 starter
spring-boot-starter-data-couchbase-
reactive使⽤ Couchbase ⾯向⽂档的数据库和 Spring Data Couchbase Reactive 的 starter
spring-boot-starter-data-elasticsearch使⽤ Elasticsearch 搜索和分析引擎和 Spring Data Elasticsearch 的 starter
spring-boot-starter-data-jdbc Starter for using Spring Data JDBC
spring-boot-starter-data-jpa Starter for using Spring Data JPA with Hibernate
spring-boot-starter-data-ldap Starter for using Spring Data LDAP
spring-boot-starter-data-mongodb Starter for using MongoDB document-oriented database and Spring Data MongoDB
spring-boot-starter-data-mongodb-
reactive
Starter for using MongoDB document-oriented database and Spring Data MongoDB Reactive spring-boot-starter-data-neo4j Starter for using Neo4j graph database and Spring Data Neo4j
spring-boot-starter-data-r2dbc Starter for using Spring Data R2DBC
spring-boot-starter-data-redis使⽤ Redis key-value 数据存储与 Spring data Redis 和 Lettuce 客户端
spring-boot-starter-data-redis-reactive使⽤ Redis key-value 数据存储与 Spring data Redis Reactive 和 Lettuce 客户端
spring-boot-starter-data-rest Starter for exposing Spring Data repositories over REST using Spring Data REST
spring-boot-starter-groovy-templates Starter for building MVC web applications using Groovy Templates views
spring-boot-starter-hateoas Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS
spring-boot-starter-integration Starter for using Spring Integration
spring-boot-starter-jdbc使⽤ JDBC 与 HikariCP 连接池
spring-boot-starter-jersey使⽤ JAX-RS 和 Jersey 构建 RESTful web 应⽤程序的 starter。spring-boot-starter-web 的替代⽅
案。
spring-boot-starter-jooq使⽤ jOOQ 访问 SQL 数据库,可以替代 spring-boot-starter-data-jpa 或 spring-boot-starter-jdbc spring-boot-starter-json Starter for reading and writing json
spring-boot-starter-jta-atomikos Starter for JTA transactions using Atomikos
spring-boot-starter-mail使⽤ Java 邮件和 Spring 框架的电⼦邮件发送⽀持
spring-boot-starter-mustache Starter for building web applications using Mustache views
spring-boot-starter-oauth2-client使⽤ Spring Security 的 OAuth2/OpenID 连接客户端
spring-boot-starter-oauth2-resource-
server
Starter for using Spring Security’s OAuth2 resource server features
spring-boot-starter-quartz Starter for using the Quartz scheduler
spring-boot-starter-rsocket Starter for building RSocket clients and servers
spring-boot-starter-security Starter for using Spring Security
spring-boot-starter-test Starter for testing Spring Boot applications with libraries including JUnit Jupiter, Hamcrest and Mockito
spring-boot-starter-thymeleaf Starter for building MVC web applications using Thymeleaf views
spring-boot-starter-validation使⽤ Hibernate 验证器对 Java Bean 进⾏验证
spring-boot-starter-web使⽤ Spring MVC 构建 web,包括 RESTful 应⽤程序,使⽤ Tomcat 作为默认的嵌⼊式容器。spring-boot-starter-web-services Starter for using Spring Web Services
spring-boot-starter-webflux使⽤ Spring 框架的响应式 Web ⽀持构建 WebFlux 应⽤程序
spring-boot-starter-websocket使⽤ Spring 框架的 WebSocket ⽀持来构建 WebSocket 应⽤程序。
名称描述
表2: Spring Boot production starters
名称描述
spring-boot-starter-actuator使⽤ Spring Boot’s Actuator,它提供了⽣产准备功能,以帮助您监视和管理您的应⽤程序。
最后,Spring Boot 还包括以下 starters,如果您想排除或交换特定的技术⽅⾯,可以使⽤它们:
表3: SpringBoot 技术 starters
名称描述
spring-boot-starter-jetty初学者使⽤ Jetty 作为嵌⼊式 servlet 容器。可以替代 spring-boot-starter-tomcat
spring-boot-starter-log4j2使⽤ Log4j2 进⾏⽇志记录的 starter,spring-boot-starter-logging 的替代⽅法
spring-boot-starter-logging使⽤ Logback 进⾏⽇志记录的 starter,默认的⽇志 starter
spring-boot-starter-reactor-
netty使⽤ Reactor Netty 作为嵌⼊式响应式 HTTP 服务器的 starter。
spring-boot-starter-tomcat使⽤ Tomcat 作为嵌⼊式 servlet 容器的 starter。默认的 servlet 容器启动器由 spring-boot-starter-web 使⽤。
spring-boot-starter-undertow使⽤ Undertow 作为嵌⼊式 servlet 容器的 starter。可以替代 spring-boot-starter-tomcat
有关社区贡献的其他 starters 列表,请参阅 GitHub 上 spring-boot-starter 模块中的。
每天学习⼀点点,每天进步⼀点点。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。