Spring Boot简介
Spring Boot是Spring家族中的一个框架。它用为简化Spring应用开发而生的。Spring Boot 中的 Boot 一词,即为快速启动的意思。Spring Boot 可以在零配置情况下一键启动,简洁而优雅。
为了让 Spring 开发者简化开发,Spring 团队做了以下设计:
- 简化依赖,提供整合的依赖项,告别逐一添加依赖项的烦恼;
- 简化配置,提供约定俗成的默认配置,告别编写各种配置的繁琐;
- 简化部署,内置 servlet 容器,开发时一键即运行。可打包为 jar 文件,部署时一行命令即启动;
- 简化监控,提供简单方便的运行监控方式。
基于以上设计目的,Spring 团队推出了 Spring Boot 。
官网地址:spring.io/
官网Spring Boot
1. 官网中springboot的位置
2. 官网中版本的说明
- CURRENT:当前最新版本。但是有可能不是最稳定的版本
- GA(General availability):正式发布的版本。
- SNAPSHOT:快照版,即开发版
- PRE:预览版,用于新技术或者新功能的尝鲜。
说明:
Spring3.0框架是基于Spring6版本的。需要JDK最少也要11
如果是JDK8的话,那么选2.X版本
Spring Boot的特性
- 能够快速创建基于Spring的应用程序
- 内嵌web容器,不需要打成war包,单独启动一个jar包即可。默认web容器为tomcat,当然也可以很方便的替换为其他容器。
- 提供约定的starter POM来简化Maven配置。
- 自动化配置,根据项目的Maven依赖配置,Spring Boot自动配置Spring、SpringMVC等
- 提供了程序的健康检查等功能
- 基本可以完全不使用XML配置文件
创建第一个项目
1. 新建一个模块
2. 增加起步依赖
3. 生成的模块内容
4. 创建一个测试类
@RestController
public class MyController {
@RequestMapping("/hello")
public String hello() {
return "hello the world!";
}
}
5. 访问测试
6. 初体验
- 没有以前springMVC项目时,那么多的xml配置文件;这里一个都没有
- 不用在tomcat中测试。直接就能调试测试了。
第一个项目回顾
1. 自动生成的pom文件内容
其中内容可以删减部分内容。大体配置如下:
<?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>
<!--继承父项目方式-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.mayuanfei</groupId>
<artifactId>springboot01</artifactId>
<version>1.0.1</version>
<dependencies>
<!-- web项目相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 测试相关依赖 -->
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-test</artifactId>-->
<!-- <scope>test</scope>-->
<!-- </dependency>-->
</dependencies>
<build>
<plugins>
<!--springboot项目打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
这里可以我们的pom文件指定父工程为:
<!--继承父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
由于继承了这个父工程,所以下面当我们依赖Web相关内容的时候不用写版本号了
<!-- web项目相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这是因为在spring-boot-starter-parent--->spring-boot-dependencies中已经定义了与该springboot版本兼容的jar包版本依赖。
2. web项目依赖传递
项目虽然仅仅依赖了一个spring-boot-starter-web,但是由于maven的依赖传递特性,有很多东西被依赖进来了
3. springboot启动类
@SpringBootApplication
public class Springboot01Application {
public static void main(String[] args) {
SpringApplication.run(Springboot01Application.class, args);
}
}
这其中@SpringBootApplication 标识当前类为启动入口类。Spring boot项目会以这个类的main方法作为程序入口。main方法使用SpringApplication.run方法来启动应用程序。
被标识@SpringBootApplication 的启动类,会把它同级或者以下目录中有spring注解的类,加入到Spring容器中。所以我们一般为了能使我们创建的类被spring框架扫描到,都是在这个启动类的同级或者子级目录下进行创建的。比如上例中的MyController类:
代码地址
gitee.com/mayuanfei/S…下的springboot01
记忆印记
- springboot是为了简化spring的开发而应运而生的,它使得使用spring框架更加简单
- 第一个项目采用父项目为spring-boot-starter-parent从而使得再使用很多jar包时,不用写版本号
- 我们创建的类要在springboot启动类的同级或者子级中,才能被spring框架加入容器管理。