01、入门案例
SpringBoot
是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring
应用的初始搭建以及开发过程
1.1、基础篇课程学习前置知识
- Java基础语法
- Spring与SpringMVC
- 知道Spring是用来管理bean,能够基于Restful实现页面请求交互功能
- Mybatis与Mybatis-Plus
- 基于Mybatis和MybatisPlus能够开发出包含基础CRUD功能的标准Dao模块
- 数据库MySQL
- 能够读懂基础CRUD功能的SQL语句
- 服务器
- 知道服务器与web工程的关系,熟悉web服务器的基础配置
- maven
- 知道maven的依赖关系,知道什么是依赖范围,依赖传递,排除依赖,可选依赖,继承
- web技术(含vue,ElementUI)
- 知道vue如何发送ajax请求,如何获取响应数据,如何进行数据模型双向绑定
1.2、SpringBoot入门程序开发
1.2.1、基于idea联网创建项目
步骤:
①:创建新模块,选择Spring Initializr
,并配置模块相关基础信息
②:选择当前模块需要使用的技术集
总结:
- 开发
SpringBoot
程序可以根据向导进行联网快速制作SpringBoot
程序需要基于JDK8
进行制作SpringBoot
程序中需要使用何种功能通过勾选选择技术- 运行
SpringBoot
程序通过运行Application
程序入口进行
1.2.2、基于SpringBoot官网创建项目
-
基于SpringBoot官网创建项目,地址:Spring Initializr
-
步骤:
①打开SpringBoot
官网,选择Quickstart Your Project
②创建工程,并保存项目
③解压项目,通过IDE
导入项目
1.2.3、基于阿里云创建项目
-
基于阿里云创建项目,地址:https://start.aliyun.com
-
步骤:
①选择start来源为自定义URL
②输入阿里云start地址
③创建项目
注意:
阿里云提供的坐标版本较低,如果需要使用高版本,进入工程后手工切换
SpringBoot
版本
阿里云提供的工程模板与
Spring
官网提供的工程模板略有不同
1.2.4、手工制作创建项目
步骤:
① 创建普通Maven工程
② 继承spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
</parent>
③ 添加依赖spring-boot-starter-web
<dependencies>
<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>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.22</version>
</dependency>
</dependencies>
④ 制作引导类Application
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
⑤测试
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping
public String getById() {
System.out.println("SpringBoot is running...4");
return "SpringBoot is running...4";
}
}
1.3、Spring程序和SpringBoot程序对比
类/配置文件 | Spring | SpringBoot |
---|---|---|
pom文件中的坐标 | 手工制作 | 勾选添加 |
web3.0配置类 | 手工制作 | 无 |
Spring/SpringMVC配置类 | 手工制作 | 无 |
控制器 | 手工制作 | 手工制作 |
注意:
基于
idea
开发SpringBoot
程序需要确保联网且能够加载到程序框架结构
1.4、Idea中隐藏指定文件或指定类型文件
- Setting → File Types → Ignored Files and Folders
- 输入要隐藏的文件名,支持*号通配符
- 回车确认添加
1.5、SpringBoot简介
SpringBoot
是由Pivotal
团队提供的全新框架,其设计目的是用来简化Spring
应用的初始搭建以及开发过程
Spring
程序缺点
- 依赖设置繁琐
- 配置繁琐
SpringBoot
程序优点
- 起步依赖(简化依赖配置)
- 自动配置(简化常用工程相关配置)
- 辅助功能(内置服务器,……)
1.6、入门案例解析
1.6.1、parent
- 开发
SpringBoot
程序要继承spring-boot-starter-parent
spring-boot-starter-parent
中定义了若干个依赖管理- 继承
parent
模块可以避免多个依赖使用相同技术时出现依赖版本冲突 - 继承
parent
的形式也可以采用引入依赖的形式实现效果
1.6.2、starter
spring-boot-starter-web.pom
-
starter
SpringBoot
中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
-
parent
- 所有
SpringBoot
项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的 spring-boot-starter-parent
各版本间存在着诸多坐标版本不同
- 所有
-
实际开发
- 使用任意坐标时,仅书写GAV中的G和A,V由
SpringBoot
提供,除非SpringBoot
未提供对应版本V - 如发生坐标错误,再指定
Version
(要小心版本冲突)
- 使用任意坐标时,仅书写GAV中的G和A,V由
注意:
- 开发
SpringBoot
程序需要导入坐标时通常导入对应的starter
- 每个不同的
starter
根据功能不同,通常包含多个依赖坐标- 使用
starter
可以实现快速配置的效果,达到简化配置的目的
1.6.3、引导类
- 启动方式
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
SpringBoot
的引导类是Boot
工程的执行入口,运行main
方法就可以启动项目,未启动web服务器SpringBoot
工程运行后初始化Spring
容器,扫描引导类所在包加载bean
小结:
SpringBoot
工程提供引导类用来启动程序SpringBoot
工程启动后创建并初始化Spring
容器
1.6.4、内嵌tomcat
- 辅助功能
- 使用
maven
依赖管理变更起步依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--web起步依赖环境中,排除Tomcat起步依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加jetty起步依赖,版本由SpringBoot的starter控制-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
Jetty
比Tomcat
更轻量级,可扩展性更强(相较于Tomcat
),谷歌应用引擎(GAE)已经全面切换为Jetty
内置服务器
- tomcat(默认):apache出品,分子多,应用面广,负载了若干较重的组件
- jetty:更轻量级,负载性能远不及tomcat
- undertow:undertow,负载性能勉强跑赢tomcat
小结:
- 内嵌
Tomcat
服务器是SpringBoot
辅助功能之一- 内嵌
Tomcat
工作原理是将Tomcat
服务器作为对象运行,并将该对象交给Spring
容器管理- 变更内嵌服务器思想是去除现有服务器,添加全新的服务器