如果您开始使用Spring Boot,请阅读本节。它回答了基本的“什么”、“如何”和“为什么”。它包括对Spring Boot的介绍以及安装说明。然后,我们将指导您构建第一个Spring Boot应用程序,并在此过程中讨论一些核心原理。
1. SpringBoot介绍
SpringBoot帮助您创建可以运行的独立的、生产级的基于Spring的应用程序。我们对Spring平台和第三方库有自己的方式,这样您开始会少很多麻烦。大多数SpringBoot应用程序只需要很少的配置。
您可以使用java -jar 启动springboot程序或者传统的war包部署方式。
我们还提供了运行spring脚本的命令行工具(CLI)
我们的主要目标是:
- 让开发者更快更容易创建应用程序
- 开箱即用,快速解决未来需求变更带来的问题
- 为大型项目提供一系列通用的非功能新的特新(如嵌入式服务器、security、metrics、将框检查和外部化配置) --- 了解不够广泛,不太懂什么意思
- 没有代码生成和xml配置
2. 系统要求
Spring Boot 2.5.6 最低jdk要求Java8,兼容到Java17。需要Spring Framework 5.3.12或更高版本。
支持以下构建工具:
Build Tool | Version |
---|---|
Maven | 3.5+ |
Gradle | 6.8.x, 6.9.x, and 7.x |
2.1 Servlet容器
支持以下嵌入式的Servlet容器
Name | Servlet Version |
---|---|
Tomcat 9.0 | 4.0 |
Jetty 9.4 | 3.1 |
Jetty 10.0 | 4.0 |
Undertow 2.0 | 4.0 |
你也可以将程序部署到任何与Servlet3.1+兼容的容器中。
3. 安装springboot
安装前提首先需要JDK 8或者更高版本。(一般都用8)、maven3.3或者更高。
springboot CLI :可以快速开始springboot项目,运行Groovy脚本。
SDKMAN: SDK版本管理,
。。。这段介绍各种工具的安装
4.第一个SpringBoot程序
本节介绍如何构建一个"hello word" web应用程序,能体现springboot的一些关键功能,我们使用maven来管理项目。
开始前,首先确保安装了maven和jdk
$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
$ mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T14:33:14-04:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_102, vendor: Oracle Corporation
4.1 创建pom文件
maven使用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.5.6</version>
</parent>
<!-- Additional lines to be added here... -->
</project>
4.2 添加依赖
构建web程序,添加以下依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
springboot提供了很多starts包可以去依赖(自后的自动化配置功能会说),spring-boot-starter-parent 是一个特殊的jar包,他提供了maven的默认配置,还提供了依赖管理,可以在pom中省略jar报的版本号配置。
4.3 代码
在src/main/java/目录下创建MyApplication.java文件,代码如下:
@RestController
@EnableAutoConfiguration
public class MyApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
因为是一个简答的例子,所以代码写在了一块。
4.3.1
@RestController 和@RequestMapping不比多说。
4.3.2
@EnableAutoConfiguration开启自动化配置,会根据你添加的jar包去自动配置你的项目程序。比如添加了spring-boot-starter-web依赖,该jar包中有tomcat和spring mvc,那么就会自动自动配置好。
Starters and Auto-configuration
Auto-configuration 是用来配置starts(启动器)工作的,但是两者直接没有直接联系,你可以在启动器之外自由选择jar依赖项。SpringBoot仍然尽最大努力自动配置您的应用程序。
4.3.3 main方法
springboot程序启动入口。通过调用run方法来启动spring。
4.4 启动
用idea运行,或者使用mvn spring-boot:run运行。在浏览器localhost:8080,就能看到结果。
4.5 创建可执行的jar包
可执行的jar可以用来部署到生产环境,你的服务器上。
添加配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
保存之后,使用package命令,打包
之后使用 jar -jar运行
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.6)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 2.536 seconds (JVM running for 2.864)