一、快速上手SpringBoot

  • SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用初始搭建以及开发过程

.
.

1、SpringBoot入门程序

  • ①:创建新模块,选择Spring Initializr,并配置模块相关基础信息
  • 黑马SpringMVC笔记 黑马springboot教材_数据

  • ②:选择当前模块需要使用的技术集
  • 黑马SpringMVC笔记 黑马springboot教材_配置文件_02

  • ③:开发控制器
  • 黑马SpringMVC笔记 黑马springboot教材_数据_03

  • ④:运行自动生成的Application类的main方法
  • 黑马SpringMVC笔记 黑马springboot教材_数据_04

.
.

2、最简SpringBoot程序所包含的基础文件

  • pom.xml文件
  • 黑马SpringMVC笔记 黑马springboot教材_配置文件_05

  • Application类
  • 黑马SpringMVC笔记 黑马springboot教材_spring boot_06

  • .
    .
    .

3、Spring程序与SpringBoot程序对比

黑马SpringMVC笔记 黑马springboot教材_配置文件_07

.
.

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
  • 输入要隐藏的文件名,支持*号通配符
  • 回车确认添加
  • 黑马SpringMVC笔记 黑马springboot教材_spring boot_08


.
.
.

二、入门案例解析

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、引导类

黑马SpringMVC笔记 黑马springboot教材_数据_09

  • SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
  • SpringBoot工程运行后创建并初始化Spring容器扫描引导类所在包加载bean

.
.

4、内嵌tomcat

黑马SpringMVC笔记 黑马springboot教材_数据_10

  • 使用maven依赖管理变更起步依赖项(更换服务器)
  • 黑马SpringMVC笔记 黑马springboot教材_配置文件_11

  • SpringBoot内置三种服务器
  • 黑马SpringMVC笔记 黑马springboot教材_黑马SpringMVC笔记_12

  • 小结
    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配置文件加载优先级

注意:不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留

.

③ 配置文件自动提示功能消失解决方案

黑马SpringMVC笔记 黑马springboot教材_spring_13

.
.

2、yaml

  • YAML(YAML Ain’t Markup Language),一种数据序列化格式

① 优点:

  • 容易阅读
  • 容易与脚本语言交互
  • 以数据为核心,重数据轻格式

.

② YAML文件扩展名

  • .yml(主流
  • .yaml

.

③ yaml语法规则

  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • # 表示注释
  • 核心规则:数据前面要加空格与冒号隔开

.

④ yaml配置文件,字面值表示方式

黑马SpringMVC笔记 黑马springboot教材_配置文件_14


.

⑤ yaml配置文件,数组表示方式

  • 在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

.

⑥ yaml数据读取

  • a>使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}
    使用@Value配合SpEL("${}")读取单个数据
  • 黑马SpringMVC笔记 黑马springboot教材_spring boot_15

  • b>封装全部数据到Environment对象
    1. 使用Environment对象封装全部配置信息
    2. 使用@Autowired自动装配数据到Environment对象
  • 黑马SpringMVC笔记 黑马springboot教材_spring boot_16

  • c>自定义对象封装指定数据(常用)
    1. 使用@ConfigurationProperties注解绑定配置信息到封装类
    2. 封装类需要定义为Spring管理的bean,否则无法进行属性注入
  • 黑马SpringMVC笔记 黑马springboot教材_spring_17

.
.
.

四、整合第三方技术

1、整合JUnit

  • 1. 导入测试对应的starter
  • 黑马SpringMVC笔记 黑马springboot教材_数据_18

  • 2. 测试类使用@SpringBootTest修饰
  • 黑马SpringMVC笔记 黑马springboot教材_数据_19

  • 3. 使用自动装配的形式添加要测试的对象
  • 黑马SpringMVC笔记 黑马springboot教材_配置文件_20

  • 注意:如果测试类不在SpringBoot启动类的包或子包中,则要在@SpringBootTest添加classes的设定
  • 黑马SpringMVC笔记 黑马springboot教材_配置文件_21

.
.

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. 根据提供的配置格式,配置非默认值对应的配置项