以HttpEncodingAutoConfiguration组件为例,来讲解自动配置原理,当点击该HttpEncodingAutoConfiguration组件查询源码,会发现有特别多Conditional开头的注解,指定对应的条件是否成立,才能给容器中添加组件,配置里面的所有内容才生效,如下所示:
所有在配置文件中能配置的属性都是在xxxxProperties类中封装如:配置文件能配置什么就可以参照某个功能对应的这个属性值如:
可以发现Server Properties.class类中有prefix="server"
那么这可以在yaml文件或者properties文件中编写代码。
properties文件
yaml文件
注意:
SpringBoot启动会加载大量的自动配置类给容器中自动配置类添加组件的时候,会从xxxxproperties类中获取某些属性。就可以在配置文件中指定这些属性的值;xxxxProperties封装配置文件中相关属性如下所示: