实现setter注入
思考问题:在XML中配置的property该如何表达?搞清楚它们的表达方式才可以把它们读取出来
1.给BeanDefinition 添加一个获取propertyValues的方法,而PropertyValue中的getConvertedValue()是指获得一个真正的对应的property对象实例
2.property暂且分为两种,一种是引用类型的,为RuntimeBeanReference,一种是TypedStringValue
整体的类图架构如下
3.使用BeanResolver来resolve出一个bean
4.使用TypeConverter实现类型转换
下图左部分为需要实现的类型转换器,右部分是JDK中提供的类型转换类。左边实际为右边的封装和调用,只需要实现一个convertIfNecessary()方法即可,不用区分底层是数字转字符还是字符转boolean。且右边的ProertyEditorSupport可见,Spring中的命名规范可能参考了JDK中的类命名。
先完成右边的构建再完成左边的构建。
5.类型转换的捷径——CommonBeanUtils