3.使用Spring Boot
本节将详细介绍如何使用Spring Boot。它涵盖了构建系统、自动配置以及如何运行应用程序等主题。我们还将介绍一些Spring Boot最佳实践。尽管Spring Boot并没有什么特别之处(它只是您可以使用的另一个库),但是有一些建议,如果遵循这些建议,您的开发过程就会变得更容易一些。
如果您正在开始使用Spring Boot,那么在深入学习这一节之前,您应该先阅读一下入门指南。
3.1. 构建系统
强烈建议您选择一个支持依赖项管理并且可以使用发布到“Maven中央”存储库的工件的构建系统。我们建议你选择Maven或Gradle。让Spring Boot与其他构建系统(例如Ant)一起工作是可能的,但是它们并没有得到很好的支持。
3.1.1. 依赖管理
Spring Boot的每个版本都提供了一个它所支持的依赖项列表。实际上,您不需要在构建配置中为任何这些依赖项提供一个版本,因为Spring Boot会为您管理这些依赖项。当您升级Spring Boot本身时,这些依赖项也会以一致的方式升级。
您仍然可以指定版本,并在需要时覆盖Spring Boot建议的版本。
这个列表包含了可以在Spring Boot中使用的所有Spring模块,以及一个细化的第三方库列表。这个列表是一个标准的材料清单(spring-boot-dependencies),可以在Maven和Gradle中使用。
Spring Boot的每个发行版都与Spring框架的一个基本版本相关联。我们 强烈建议 您不要指定它的版本。
3.1.2. Maven
要了解如何使用Maven的Spring Boot,请参考Spring Boot的Maven插件文档:
3.1.3. Gradle
要了解如何在Gradle中使用Spring Boot,请参考Spring Boot的Gradle插件文档:
3.1.4. Ant
使用Apache Ant+Ivy构建Spring引导项目是可能的。spring-boot-antlib
“AntLib”模块也可以帮助Ant创建可执行jar。
为了声明依赖关系,一个典型的ivy.xml文件看起来像下面的例子:
<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>
一个典型的build.xml看起来像下面的例子:
<project
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.4.2" />
<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