SpringBoot学习笔记
精髓:
1)、SpringBoot启动会加载大量的自动配置类
2)、我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
3)、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
4)、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这些属性的值;
xxxxAutoConfigurartion:自动配置类;
给容器中添加组件
xxxxProperties:封装配置文件中相关属性;
一、第一章
yml语法
k: v 结构
"":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
eg: name: "zhangsan \n lisi":输出;zhangsan 换行 lisi
----------------------------------------------------------------
'':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
eg: name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
对象、Map(属性和值):
//第一种
person:
name: 张三
gender: 男
age: 22
//第二种行内写法
person: {name: 张三,gender: 男,age: 22}
数组(List、Set)
//第一种
fruits:
- 苹果
- 桃子
- 香蕉
//第二种
fruits: [苹果,桃子,香蕉]
注解
@ConfigurationProperties(prefix = “person”)
@ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
-
prefix = "person":配置文件中哪个下面的所有属性进行一一映射
@Value
1、${}
2、 #{}
3、 直接写
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量注入数据 | 单个注入数据 |
SpEL | 支持 | 不支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
@PropertySource:加载指定的配置文件
@PropertySource(value = {"classpath:person.properties"})
@ImportResource:导入Spring的配置文件,让配置文件里面的内容生效;
@ImportResource(locations = {"classpath:beans.xml"})
激活指定的profile
1、在配置文件中指定 spring.profiles.active=dev
2、命令行:
java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;
可以直接在测试的时候,配置传入命令行参数
3、虚拟机参数;
-Dspring.profiles.active=dev
配置文件加载
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
–file:./config/
–file:./
–classpath:/config/
–classpath:/
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这四个位置全部加载主配置文件;互补配置;
日志
开发中,总会引用不同的框架,而不同的框架内部封装的日志jar包是不同的,springboot如何让他们统一起来的呢?
- 将系统中其他日志框架先排除出去;
- 用中间包来替换原有的日志框架(适配器的类名和包名与替换的被日志框架一致);
- 我们导入slf4j其他的实现
中间包起到偷梁换柱的作用,把原来的日志包转换为我们要统一的日志包。
总结:
1、SpringBoot底层也是使用slf4j+logback的方式进行日志记录
2、SpringBoot也把其他的日志都替换成了slf4j;
3、SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可;
本文地址:https://blog.csdn.net/zhengguofeng0328/article/details/109841864
上一篇: 【每日算法】最长递增子序列
下一篇: 一次docker错误的耗时排查过程记录