目录
- 1. 入门知识
- 1. 介绍Spring Boot
- 2. 系统环境要求
- 3. 安装Spring Boot
- 3.1 使用Java开发的安装说明
- 3.1.1 使用Maven安装
- 3.1.2 使用Gradle安装(略)
- 3.2 安装Spring Boot CLI
- 3.2.1 手动安装
- 3.2.2 使用SDKMAN等各种方式的安装方法(略)
- 3.2.3 快速使用CLI事例
- 4. 开发第一个Spring Boot的应用程序
- 4.1 创建POM
- 4.2 添加Classpath依赖
- 4.3 编写代码
- 4.3.1 @RestController 和 @RequestMapping 注解
- 4.3.2 main方法
- 4.4 运行事例
- 4.5 创建可执行Jar
*本篇主要是根据Spring Boot Reference Guide(Spring Boot官方参考指南),进行逐步学习,一切以官方文档为准。有不对之处欢迎斧正。
首先大致介绍一下Spring Boot的这篇官方文档大致讲的内容框架。这篇文档总共分了十个部分,分别是:
1. Spring Boot Documentation --Spring Boot文档介绍,也就是介绍这个文档中都有哪些内容
2. Getting Started --入门知识,关于使用Spring Boot前需要做哪些准备,及搭建一个简单的应用
3. Using Spring Boot --使用Spring Boot,包含系统构建,代码开发,文件配置,注解使用,依赖注入,运行你的应用的几种方法,开发工具
4. Spring Boot features --Spring Boot的特征,包含SpringApplication、Externalized Configuration、Profiles、日志、国际化、JSON、开发Web应用程序、安全、Sql数据库的使用、NoSql数据库的使用、各种缓存的配置、消息、使用RestTemplate和WebClient调用rest服务、校验、发送Email、JTA分布式事务的使用、Hazelcast分布式的使用、Quartz定时器、任务执行和调度、Spring的集成、Spring Session、JMX的监控和管理、测试、web套接字、web服务、自定义注解、Kotlin(一种静态编程语言)的使用。
5. Spring Boot执行器:生产上的功能
6. 部署Spring Boot应用程序
7. Spring Boot CLI
8. 搭建插件工具
9. 各种使用指南
10. 附件
由于第1部分是关于文档的介绍说明,因此直接跳过第一章,从第2部分开始。
1. 入门知识
如果之前未接触过Spring Boot则从本章开始学习,本章介绍了如何使用,如何搭建简单的SpringBoot框架,并含有一些核心的原则。
1. 介绍Spring Boot
Spring Boot可以轻松创建可以运行的独立的,生产级的基于Spring的应用程序。我们对Spring平台和第三方库进行了一种自动的配置,这样您就可以轻松上手了。大多数Spring Boot应用程序只需要很少的Spring配置。
我们的目标:
- 为所有Spring的开发提供更快的入门体验
- 开箱即用
- 提供大型项目(例如嵌入式服务器、安全性、度量标准、运行状况检查和外部化配置)通用的一系列非功能性功能。
- 没有代码生成,也不需要配置xml
2. 系统环境要求
- 使用java 8
- maven 3.3以上
- Tomcat 9.0
- Jetty 9.4
可以将Spring Boot应用程序部署到任何Servlet 3.1+兼容容器。
3. 安装Spring Boot
3.1 使用Java开发的安装说明
你可以像使用标准Java库一样使用Spring Boot, 只需要在classPath中包含相应的spring-boot - * .jar文件,Spring Boot不需要任何特殊工具集成,所以你可以使用任何IDE或文本编辑器。此外,Spring Boot应用程序没有什么特别之处,因此您可以像运行任何其他Java程序一样运行和调试Spring Boot应用程序。
虽然您可以复制Spring Boot jar,但我们通常建议您使用支持依赖关系管理的构建工具(例如Maven或Gradle)
3.1.1 使用Maven安装
Spring Boot依赖项使用 org.springframework.boot groupId。通常,您的Maven POM文件继承自spring-boot-starter-parent项目,并声明对一个或多个“Starters”的依赖关系。 Spring Boot还提供了一个可选的Maven插件来创建可执行jar。
如下pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
***在pom中继承spring-boot-starter-parent是多数情况下都可使用的好方案,但是也有其他方案可以使用,请参见第13.2.2节“使用不带父POM的Spring Boot”作为使用导入范围的替代解决方案。
3.1.2 使用Gradle安装(略)
3.2 安装Spring Boot CLI
Spring Boot CLI是一个命令行工具,你可以使用它快速运行Groovy脚本(初学者不用了解),从而来使用Spring Boot。当然你也可以不使用CLI,但是这个种方式是最快捷的使用方法。
3.2.1 手动安装
您可以从Spring软件库下载Spring CLI发行版:
- spring-boot-cli-2.1.4.RELEASE-bin.zip 下载完成后,解压并参考文件夹中的INSTALL.txt文件,配置环境变量,SPRING_HOME=你解压的位置,配置PATH=%SPRING_HOME%/bin
3.2.2 使用SDKMAN等各种方式的安装方法(略)
3.2.3 快速使用CLI事例
首先,创建一个名为app.groovy的文件,如下所示
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
然后使用命令行运行它,如下$ spring run app.groovy
*应用程序的第一次运行速度很慢,因为下载了依赖项。后续运行要快得多
运行完,打开浏览器,输入localhost:8080,屏幕显示Hello World!则表示已安装成功。
4. 开发第一个Spring Boot的应用程序
搭建一个简单的入门程序,介绍里面的主要功能,使用Maven构建这个项目。
请确保java和maven版本为java8和maven3.3以上。
4.1 创建POM
新建文件夹命名为myproject,这个名词和pom中的artifactId相同,作为项目名称使用。然后在此文件夹下新建pom.xml。内容如下。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<!-- Additional lines to be added here... -->
</project>
在项目文件夹下使用命令mvn package进行打包测试。会在target文件夹下生成jar文件。现在你可以将此项目导入到IDE中也可以使用纯文本编辑器。
4.2 添加Classpath依赖
Spring Boot提供了许多“Starters(启动器)”,可以将这些jar包添加到类路径中。我们的4.1的示例应用程序已经在POM的父节中使用了spring-boot-starter-parent。 spring-boot-starter-parent是一个特殊的启动器,提供有用的Maven默认值。它还提供了一个依赖项管理部分,以便您可以省略自己再添加依赖项。
其他“Starters(启动器)”提供了在开发特定类型的应用程序时可能需要的依赖项。由于我们正在开发Web应用程序,因此我们添加了一个spring-boot-starter-web依赖项。在此之前,我们可以通过运行以下命令来查看当前的内容:
$ mvn dependency:tree
[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT
mvn dependency:tree //打印项目依赖项;我们看到spring-boot-starter-parent并没有依赖任何其他jar包。现在编辑您的pom.xml并在父节下面添加spring-boot-starter-web依赖项:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
再次运行mvn dependency:tree,你可以看到现在有许多其他依赖项,包括Tomcat Web服务器和Spring Boot本身。如下图
4.3 编写代码
由于Maven的编译来源于src/main/java文件夹下,因此我们需要在项目下新建src/main/java/Example.java
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
虽然这里的代码不多,后续章节中有很多代码会一一介绍。
4.3.1 @RestController 和 @RequestMapping 注解
- @RestController:类级别注解,让Spring在处理传入的web请求时会考虑这个类,并且告诉Spring返回的结果是字符串类型的。
- @RequestMapping:提供“路由”信息,它告诉Spring,任何带有/ path的HTTP请求都应该映射到home方法
这两个注解都是SpringMVC的注解,不是SpringBoot特有的。 - @EnableAutoConfiguration:类级别注解,告诉Spring Boot根据你添加的jar依赖关系“猜测”你想要如何配置Spring
4.3.2 main方法
代码中的最后部分是main方法,这只是遵循应用程序入口点的Java约定的标准方法。我们的main方法通过调用run来委托Spring Boot的SpringApplication类。 SpringApplication引导我们的应用程序,启动Spring,然后启动自动配置的Tomcat Web服务器。我们需要将Example.class作为参数传递给run方法,以告诉SpringApplication是主要的Spring组件。 args数组也被传递以公开任何命令行参数。
4.4 运行事例
由于使用了spring-boot-starter-parentpom,所以我们可以在项目文件夹下使用:mvn spring-boot:run,进行启动。启动完在浏览器中输入localhost:8080,会打印出Hello World!
4.5 创建可执行Jar
在pom.xml中添加以下代码
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
使用命令行:mvn package进行打包,在target下用命令行:java -jar target/myproject-0.0.1-SNAPSHOT.jar运行,使用ctrl-c退出运行。