SpringBoot内置http编码功能为例分析自动配置过程( 五 )
很明显 , 它被@ConditionalOnClass 注解 ,并且指定实例化的条件为类路径下必须有CharacterEncodingFilter 存在 。 再看一下该类的其他注解 。
.@Configuration:指定该类作为配置项来进行实例化操作 。
.@ EnableConfigurationProperties:参数为 HttpProperties.class,开启属性注入 , 会将参数中的 HttpProperties 注入该类 。
. @ConditionalOnWebApplication: 参数为 Type .SERVLET, 说明该类只有在基于 servlet的 Web 应用中才会被实例化 。
.@ConditionalOnClass:参数为 CharacterEncodingFilter.class,只有该参数存在 , 才会被实例化 。
@ConditionalOnProperty:指定配置文件内 spring .ttp.encoding 对应的值 , 如果为 enabled才会进行实例化 , 没有配置则默认为 true 。
.@ConditionalOnMissingBean: 注释于方法上 , 与@Bean 配合 , 当容器中没有该 Bean 的实例化对象时才会进行实例化 。
其中 HttpProperties 类的属性值对应着 application.yml 或 application.properties的配通过注解@ConfigurationProperties(prefix="sprig.http")实现的属性注入 。 关于属性注入 , 后面章节会详细讲解 , 这里我们先看一下源代码和对应的配置文件参数 。 @ConfigurationProperties(prefix = "spring.http" )
public class HttpProperties {...public static class Encoding {public static final Charset DEFAULT_ CHARSET = StandardCharsets.UTF_ 8;private Charset charset = DEFAULT CHARSET;private Boolean force;private Boolean forceRequest;private Boolean forceResponse;private Map
而在 application.properties 中 , 我们会进行如下对应配置:
spring . http. encoding . force=truespring . http. encoding. charset=UTF-8spring . http. encoding . force-request=true...
小结本章围绕SpringBoot的核心功能展开 , 带大家从总体上了解 Spring Boot 自动配置的原理以及自动配置核心组件的运作过程 。 只有掌握了这些基础的组建内容及其功能 , 我们在后续集成其他三方类库的自动配置时 , 才能够更加清晰地了解它们都运用了自动配置的哪些功能 。 本章需重点学习自动配置原理、@EnableAutoConfiguration、@Import、ImportSelector、@Conditional 以及示例解析部分的内容 。
本文给大家讲解的内容是AutoConfiguration事件注册和@Conditional 条件注解、实例解析;
- 下篇文章给大家讲解的是SpringBoot构造流程源码分析;
- 觉得文章不错的朋友可以转发此文关注小编;
- 感谢大家的支持!
推荐阅读
- 外接内置一样快!希捷Xbox Series X存储扩展卡评测
- 传三星Z Fold3将内置S Pen内外屏尺寸变小但幅度不大
- 内置动画私教课程,约一只护腕重量,华为WATCH FIT全新发布
- 喜马拉雅推出 AI 真无线耳机 内置听书功能
- 三星Galaxy A52 4G规格出现在Geekbench上 内置骁龙720G
- 仅重75克 OneUP更新内置舵管工具
- SpringBoot常用注解
- 一文教你如何搭建http游戏服务器
- 阿里爆款SpringBoot项目实战PDF+源码+视频分享
- 华科隆20W快充充电器拆解,竟然内置这套超级硅方案,用料真猛