一、快速上手SpringBoot
SpringBoot
是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用
的初始搭建
以及开发过程
.
.
1、SpringBoot入门程序
- ①:创建新模块,选择
Spring Initializr
,并配置模块相关基础信息 - ②:选择当前模块
需要使用的技术集
- ③:开发
控制器
类 - ④:运行自动生成的Application类的main方法
.
.
2、最简SpringBoot程序所包含的基础文件
pom.xml文件
Application类
- .
.
.
3、Spring程序与SpringBoot程序对比
.
.
4、创建SpringBoot工程的四种方式
- ① 基于Idea创建SpringBoot工程 (
以上已经展示
) - ② 基于SpringBoot官网创建项目,
地址:https://start.spring.io/
- ③ 基于阿里云创建项目,
地址:https://start.aliyun.com
注意:阿里云提供的坐标版本较低,如果需要使用高版本,进入工程后手工切换SpringBoot版本
- ④ 手工创建项目(
不需要联网
)a>创建普通Maven工程
b>手工导入坐标:
c>手工制作引导类:
.
.
5、IDEA中隐藏指定文件/文件夹
Idea中隐藏指定文件或指定类型文件步骤:
Setting → File Types → Ignored Files and Folders
输入要隐藏的文件名,支持*号通配符
回车确认添加
.
.
.
二、入门案例解析
1、parent
- 在
父工程中定义了所使用坐标的版本号
,子工程添加依赖时就不需要设置版本号
,这样就避免版本冲突问题
- 原理图:
- pom文件中:
- 小结:
1. 开发SpringBoot程序要继承spring-boot-starter-parent(又继承spring-boot-dependencies)
2. spring-boot-starter-parent中定义了若干个依赖管理
3. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
4. 继承parent的形式也可以采用引入依赖的形式实现效果
(阿里云使用的方案)
.
.
2、starter
- starter 是 SpringBoot中常见项目名称,定义了当前项目使用的
所有依赖坐标
,以达到减少依赖配置的目的
- 小结
1. 开发SpringBoot程序需要导入坐标时通常导入对应的starter
2. 每个不同的starter根据功能不同,通常包含多个依赖坐标
3. 使用starter可以实现快速配置的效果,达到简化配置
的目的
.
.
3、引导类
- SpringBoot的引导类是Boot
工程的执行入口
,运行main方法就可以启动项目 - SpringBoot工程
运行后创建并初始化Spring容器
,扫描引导类所在包加载bean
.
.
4、内嵌tomcat
- 使用maven依赖管理
变更起步依赖项(更换服务器)
- SpringBoot内置三种服务器
- 小结
1. 内嵌Tomcat服务器是SpringBoot辅助功能之一
2. 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行
,并将该对象交给Spring容器管理
3. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器
.
.
.
三、基础配置
- SpringBoot内置属性查询
官方文档
:https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties
1、属性配置
① 注意:
- SpringBoot中
依赖对应 starter 后,配置文件中才提供对应配置属性。
- 书写SpringBoot配置采用
关键字+提示
形式书写
.
② SpringBoot提供了多种属性配置方式
- properties(
传统格式/默认格式
- yml(
主流格式
) - yaml
- 如果有多个配置文件,SpringBoot
配置文件加载优先级
注意
:不同配置文件中相同配置按照加载优先级相互覆盖
,不同配置文件中不同配置全部保留
.
③ 配置文件自动提示功能消失解决方案
.
.
2、yaml
- YAML(YAML Ain’t Markup Language),
一种数据序列化格式
① 优点:
- 容易阅读
- 容易与脚本语言交互
- 以数据为核心,
重数据轻格式
.
② YAML文件扩展名
- .yml(
主流
) - .yaml
.
③ yaml语法规则
大小写敏感
- 属性层级关系使用多行描述,每行结尾使用冒号结束
- 使用缩进表示层级关系,同层级左侧对齐,
只允许使用空格(不允许使用Tab键)
- 属性值前面添加空格
(属性名与属性值之间使用冒号+空格作为分隔)
-
#
表示注释 - 核心规则:
数据前面要加空格与冒号隔开
.
④ yaml配置文件,字面值
表示方式
.
⑤ yaml配置文件,数组表
示方式
- 在属性名书写位置的下方
使用减号作为数据开始符号
,每行书写一个数据,减号与数据间空格分隔
.
⑥ yaml数据读取
- a>使用
@Value
读取单个数据,属性名引用方式:${一级属性名.二级属性名……}
使用@Value配合SpEL("${}")
读取单个数据 - b>封装全部数据到
Environment对象
1. 使用Environment对象封装全部配置信息
2. 使用@Autowired自动装配数据到Environment对象
中 - c>
自定义对象
封装指定数据(常用)
1. 使用@ConfigurationProperties注解绑定配置信息到封装类
中
2. 封装类需要定义为Spring管理的bean
,否则无法进行属性注入
.
.
.
四、整合第三方技术
1、整合JUnit
- 1. 导入
测试对应的starter
- 2. 测试类使用
@SpringBootTest
修饰 - 3. 使用自动装配的形式添加要测试的对象
- 注意:如果
测试类不在SpringBoot启动类的包或子包中
,则要在@SpringBootTest添加classes的设定
.
.
2、整合MyBatis
- ① :创建springboot时选择当前模块需要使用的技术集(
MyBatis、MySQL
) - ② :在springboot配置文件中
设置数据源参数
注意:SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,
需要在url连接串中配置时区 (serverTimezone=UTC)
- ③ :定义数据层接口与映射配置
- ④ :测试类中注入dao接口,测试功能
.
.
3、整合MyBatis-Plus
- ①:手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository获取(
如果使用阿里云创建springboot则可以勾选
)
由于SpringBoot中未收录MyBatis-Plus的坐标版本,需要
指定对应的Version
- ②:定义数据层接口与映射配置,继承BaseMapper
- 结论:
需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标
.
.
4、整合Druid
- ① 导入Druid对应的starter
- ② 使用Druid的配置方式,配置数据源
.
.
小结:整合第三方技术通用方式
- 1. 导入对应的
starter
- 2. 根据提供的配置格式,配置
非默认值对应的配置项