SpringBoot
ssm配置繁琐 → 配置魔鬼 → 繁琐
屠龙者 SpringBoot
配置简单 → 约定大于配置
啥是约定大于配置?
XX 处了个对象
想要喝奶茶 → 买杯喜茶 → XX买了喜茶
想要喝奶茶 → 买杯喜茶 → 买了喜茶
想要喝奶茶 → 买杯喜茶 → 买了喜茶
XX和他对象的一个默契 → 如果我没有告诉你买什么牌子的奶茶 默认喜茶
想要喝奶茶 → 帮我买杯奶茶 → XX会买什么奶茶??? → 喜茶
Spring需要注册组件 → 没有告诉你注册的组件什么样子 → 默认注册你想要的的组件
接下来问题来了:XX对象又想要喝奶茶,茶颜悦色,说我想喝茶颜悦色 → XX回去买啥子??? 张微买的就是茶颜悦色
指定了注册什么样的组件,就以指定的方式为准(默契自动失效)
→ 如果没有指定,执行默认;如果指定,以指定为准;
方便集成第三方框架 → SpringBoot好用 → 纷纷增加了对SpringBoot的支持
SpringBoot不需要额外的javaee容器 → 内置了 → 在应用成自己配置好的javaee环境在任何环境下部署应用 javaee环境是一致的
本质上还是一个Spring应用
java技术命好
google → andriod → java
Spring 轻量级的框架 → javaee
SpringBoot 轻量级
创建一个SpringBoot应用
- web网页端创建并下载
- 在idea中创建
SpringBoot介绍
- maven介绍
这个parent是SpringBoot应用的标配。
- 启动类
组件注册范围 → 启动类所在的包目录
- 配置文件
key和value对应的形式
context-path表示应用名
server-port表示Tomcat启动的端口号
- 搭建一个springboot-web
1、引进依赖
或者在创建Moudle的时候:
增加一个lombok
并且导入这个包:
只要引进依赖,web应用就构建好了,并且还支持json
通常springboot支持某个框架的依赖都叫spring-boot-starter-xxx
这个依赖:1. 提供这个框架所必须的依赖 2.注册一些默认的组件
2、controller
3、启动应用
- SpringBoot应用可以打包为jar包启动
先点击Maven工程中的package进行打包,打包完后会在target目录下找到这个jar包。
在cmd中运行jar包。
SpringBoot详解
- 配置文件
a. properties(key=value)
b. yml(key:value)
c. 配置文件的应用:给容器中的组件的成员变量赋值
访问http://localhost:8080/demo2/hello就会赋值。
- ConfigurationProperties(极其重要)
仍然是给容器中的组件的成员变量赋值 → 更简单更直接的方式
配置:
其他类型的成员变量如何配置?
组件中增加其他类型的成员变量
两种配置文件的写法:
- properties:
yml:
如果想让我们在配置文件中写自己定义的组件的时候有提示,可以导入一个依赖:
或者在创建Moudle的时候就选中这项:
引进依赖之后,重新run一下你的应用,properties或yml文件就会给提示了
配置文件占位符
- 随机数
随机数在应用启动的时候,就已经生成,在程序运行过程中不会发生改变;
当你重新启动应用时,随机数则发生变化 - 属性占位符
引入额外的配置文件(了解)
- PropertySource(springboot的properties类型)
在讲ioc的时候讲过这个注解
- ImportResource(Spring)
其实并不建议使用这种方式引入Spring配置文件,更建议我们使用JavaConfig
.
多配制文件
背景:springboot会找到classpath,并且加载配置文件。回去找哪些配置文件呢?
application.properties
application.yml或yaml
application-*.properties(yml)
主配置文件中配置spring-pofiles.active属性为α、β、Σ可以选择激活哪个子配置文件。
两个使用场景:
选择激活配置文件:
yml文件有一种额外的配置文件命名方式
同一个配置文件中创建多个子配置文件,通过 - - - 的方式来分割
每个配置文件的名字是啥 → spring.profiles = 配置文件的名字
自定配置原理
为什么约定大于配置 → 为什么自动帮我们注册组件
找到META-INF/spring.factories → 自动配置类
@ConditionalOn → 当满足xxx条件时,注册组件
@ConditionalOnMissing → 当不满足xxx,或缺少xxx时,注册组件
下面的红字部分可以理解为奶茶案例,如果没告诉买什么奶茶,我就买一个默认的奶茶。
SpringBoot本质上还是一个spring应用,它只是通过javaconfig给我们注册组件。
整合Web
spring-boot-starter-web
- 静态资源
上面是默认配置,我们可以自己配置
- 文件上传组件multipartResolver会自动注册
- SpringMVC配置类
- Converter
心脏搭桥手术案例 1、取出 2、增加 3、放回
在Converter类上增加@Component注解,注册到容器中就生效了
整合mybatis
mybatis-spring-boot-starter
datasource:
mappers:
注意项:如果你引入了mybatis对springboot的依赖,一定要配置数据源 → 如果你没有打算使用某个框架,就不要先去引入它对springboot支持的依赖
其他的一些配置:
配置文件这加上这句话,会在控制台显示哪些组件注册了,哪些组件没注册。
彩蛋
banner.txt或banner.png放在resource目录下就会在启动的时候识别到。
9配置文件加载优先级(运维)
了解 → 视频
10项目
小组合作的项目 维护一套代码 → git → github 、gitee(码云)
大家忘得差不多 → 不知道怎么提交了 → 怎么处理冲突 → 忽略文件
周五到下周五