源码地址:https://github.com/spring-projects/spring-framework
仓库地址:https://gitcode.net/qq_42665745/spring/-/tree/17-type-conversion
数据类型转换工厂
核心类:
- Converter:定义类型转换基本操作
- ConverterFactory:用于创建特定类型转换器的工厂
- ConverterRegistry:用于管理和注册不同类型的转换器
- GenericConverter:更通用的类型转换接口
- ConversionService:定义类型转换的接口
- GenericConversionService:提供了类型转换和注册等一些通用方法
- DefaultConversionService:默认类型转换服务,预注册了很多类型转换器
流程:
1.加载上下文时,会优先加载conversionService bean,通过FactoryBean扩展自定义的类型转换器放到一个set集合中,最后将其全都注册到conversionService类中,后续所有类型转换的相关操作直接调用conversionService就行,然后再加载其他bean
2.属性注入时使用,根据name的类型,去类型转换器集合中找处理这种转换的转换器,然后进行类型转换