配置文件属性参照
以HttpEncodingAutoConfiguration为例
注解中有前缀的写法,
我们能配置的属性在springBoot1.5.9版本中来源于HttpEncodingProperties类
但是在2.3.1版本中,能配置的属性来源于Encoding类
可以看到server.servlet.encoding后边可以加enabled、charset、force、forceRequest、forceResponse、mapping
再比如CacheAutoConfiguration
能配置的属性在CacheProperties类中
springBoot框架作为半成品,其实就是为了方便开发, 原来很多自己配置的东西,都交给了框架处理。 springBoot启动时会加载大量自动配置类,配置类中就会把很多组件放到spring的ioc容器中 我们使用时,就是看需要的组件springBoot的自动配置类中是否已经提供 如果没有提供,这时就需要自己去编写组件。 如果提供了,那么组件的属性是否符合我们的要求,如果不符合,也就是不使用它默认的配置,而是自己在配置文件中定义属性 而这些属性包含哪些,就去看自动配置类的xxxProperties类中的成员。从而指定希望出现的参数,满足项目需求。
在自动配置类上,包括在组件方法上,都可以看到Conditional注解,它的含义就是在创建这个自动配置类或者创建这个组件之前,要进行判断
比如这个编码过滤器,它是要在没有配置过这个Bean 的时候才生成组件
他们都是根据spring的原生@Conditional注解来做的派生注解
就是经过了一个条件判断
必须Conditional注解中条件成立,才会把组件添加到容器中,配置的内容才生效
当启用了springBoot的debug配置,会在控制台打印自动配置报告
包括匹配到的自动配置类,和未启用的自动配置类