application.properties 配置
server.port=8001
application.yml会自动读取,其他命名方式需要单独配置 PropertySources(classPath://Config/config.properties)
1、为什么在这里配置一个简单的东西,她就会生效?
yaml配置自动绑定,判断条件生效
2、什么是yaml,为什么用yaml
这种语言以数据(对象,map,list,集合)做中心
k: value (中间必须有空格)
Map,对象{ }
student:
name:coding
age:3
student:{name:xxx,age:3}
数组,List[]
Properties:key=value properties不能配置保存 数据(对象,map)等
pojo: 字段:set、 get
—如何转换—
配置类: 配置,设置配置,得到配置
3、@ConfigurationProperties @Value:如果字段很少
支持批量注入配置文件 只能单个
支持松散绑定(last_name lastName) 不支持
SPEL不支持 SPEL支持
JSR303数据校验(验证数据格式,email) 不支持
支持复杂类型的封装 不支持
4、总结:
在启动的时候查找一个文件spring.factories,包含很多xxx.autoconfigure
这么多自动配置类,为什么没有都生效? 里面有很多conditionOn
大量的启动器,其实就是一个个对应的场景启动器
每一个xxxxAutoConfiguration都绑定了xxxxProperties
xxxxProperties通过 @ConfigurationProperties 连接配置文件。假如配置文件手动配置了,就使用手动配置。如果没有则使用自动配置