spring自动配置学习笔记

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 连接配置文件。假如配置文件手动配置了,就使用手动配置。如果没有则使用自动配置

 

 

 

 

你可能感兴趣的:(java)