Springboot
1.yaml语法
server
port: 8081
#对象
person:
name: jack
age: 22
数组
age:
- 11
- 12
- 13
#多文档,以---分割,每一个---都是一个独立的配置
server:
port: 8081
profiles:
active:dev
---
server:
port: 8082
profiles:dev
---
server:
port: 8082
profiles:prod
#扩展:文件占位符
#${key:defalut value},在yaml和properties文件中,都可以使用这种方式来引用文件其他属性的值,key代表引用的属性名,冒号后可以填写默认值
1.1 从yaml文件和properties文件中获取值
1.1.1yaml文件
在要获取的类上添加@configurationProperties(prefix=" (前缀)
")注解即可
使用这个功能的前提是这个类必须是容器中的组件,所以还得加上@Component
注解
1.1.2 properties文件
与yaml同理,但是要注意编码问题
idea默认编码是gbk,可以在设置中的 file encodings 中修改编码格式
1.2 @Value和@ConfigurationProperties的区别
1.2.1 使用场景的不同
用@Value
注解时,可以使用spel表达式,但是有多个属性需要注入值时,就要写多个@value
,所以在使用这两种注入时可以在不同的场景可以使用不同的方式注入值。
1.2.2 @configurationProperties支持jsr-303校验(Validation)
2.@propetySource和@ImportResource
@propetySource
加载指定的配置文件
可以独立一个properties文件,配合@propetySource
和@configurationProperties
注解一起使用,将独立的文件属性注入到类中
@ImportResource
注入spring配置文件
在启动类上加上@ImportResource
注解并加上要加载spring配置文件的路径
在实际开发中,springboot推荐下面这种@Bean
的方式:
3.配置文件的加载位置和优先级
3.1外部配置加载顺序和优先级
从高到低,高优先级的会覆盖低优先级的内容
4.@Conditional注解的派生
我们可以通过springboot的配置文件开启springboot的debug的模式,这样会打印所有配置类生效的情况,就不必一个一个去看配置类是否生效了
debug=true
5.spring boot 与日志
可以在配置文件中配置:
参数说明:
%d —日期
%thread —线程号
%-5level ----日志等级,靠左对齐
%logger {50}—输出类的全路径50个字符
%msg — 输出的消息
%n — 换行