spring IOC 学习记录1

Beans包下顶层接口分析:

BeanInfoFactory:用于为Spring bean创建{BeanInfo}实例的策略接口。

     BeanInfo getBeanInfo(Class<?> beanClass) throws IntrospectionException:获取BeanInfo的接口方法

BeanMetadataElement:由bean元数据元素实现的接口,携带配置源对象,主要作用用于数据源的传输。

     Object getSource():返回此元数据元素的配置源

Mergeable:表示对象的接口,其值集可以与父对象的值合并。

     boolean isMergeEnabled():是否为此特定实例启用了合并

     Object merge(@Nullable Object parent):将当前值集合与提供的对象的值合并。提供的对象被视为父对象,值为被调用者的值集必须覆盖所提供对象的值。

PropertyAccessor:获取和设置属性(例如对象bean的属性,对象的Field)的通用接口,它用来作为BeanWrapper的基础接口

     boolean isReadableProperty(String propertyName):确定指定的属性是否可读。

     boolean isWritableProperty(String propertyName):确定指定的属性是否可写。

     Class<?> getPropertyType(String propertyName) throws BeansException:获取指定属性的属性类型,检查属性描述符或在索引元素或映射元素的情况下检查值。

     TypeDescriptor getPropertyTypeDescriptor(String propertyName) throws BeansException:返回指定属性的类型描述符:最好从read方法返回write方法。

    Object getPropertyValue(String propertyName) throws BeansException:获取指定属性的当前值。

    void setPropertyValue(String propertyName, @Nullable Object value) throws BeansException:将指定值设置为当前属性值。

    void setPropertyValue(PropertyValue pv) throws BeansException:将指定值设置为当前属性值。

    void setPropertyValues(Map<?, ?> map) throws BeansException:从Map执行批量更新,key为属性名称,键为值。

    void setPropertyValues(PropertyValues pvs) throws BeansException:执行批量更新的首选方法。

    void setPropertyValues(PropertyValues pvs, boolean ignoreUnknown)throws BeansException:通过更多控制行为执行批量更新。

    void setPropertyValues(PropertyValues pvs, boolean ignoreUnknown, boolean ignoreInvalid)throws BeansException:通过完全控制行为执行批量更新。

PropertyEditorRegistrar:用于使用属性编辑器注册表注册自定义属性编辑器的策略的接口。

    void registerCustomEditors(PropertyEditorRegistry registry):使用给定的PropertyEditorRegistry注册自定义PropertyEditors,传入的注册表通常是BeanWrapper或DataBinder,预计实现将为每次调用此方法创建全新的PropertyEditors实例(因为PropertyEditors不是线程安全的)。

PropertyEditorRegistry:封装用于注册JavaBeans PropertyEditors的方法,这是PropertyEditorRegistrar操作的中央接口,由BeanWrapper扩展; 由BeanWrapperImpl和org.springframework.validation.DataBinder实现

    void registerCustomEditor(Class<?> requiredType, PropertyEditor propertyEditor):为给定类型的所有属性注册给定的自定义属性编辑器。

    void registerCustomEditor(@Nullable Class<?> requiredType, @Nullable String propertyPath, PropertyEditor propertyEditor):为给定的类型和属性或给定类型的所有属性注册给定的自定义属性编辑器。如果属性路径表示数组或Collection属性,则编辑器将应用于数组/ Collection本身(PropertyEditor必须创建数组或Collection值)或每个元素(PropertyEditor必须创建元素类型), 取决于指定的所需类型。注意:每个属性路径只支持一个注册的自定义编辑器。 对于Collection / array,不要为Collection / array和同一属性上的每个元素注册编辑器。

    PropertyEditor findCustomEditor(@Nullable Class<?> requiredType, @Nullable String propertyPath):查找给定类型和属性的自定义属性编辑器。

TypeConverter:定义类型转换方法的接口。 通常(但不一定)与PropertyEditorRegistry接口一起实现。

    <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType) throws TypeMismatchException,

    <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType, @Nullable MethodParameter methodParam) throws TypeMismatchException,

    <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType, @Nullable Field field)
            throws TypeMismatchException:将值转换为所需类型(如果需要,从String)。

PropertyValues:包含一个或多个PropertyValue对象的Holder,通常包含特定目标bean的一个更新。

    PropertyValue[] getPropertyValues():返回此对象中保存的PropertyValue对象的数组。

    PropertyValue getPropertyValue(String propertyName):返回具有给定名称的属性值(如果有)。

    PropertyValues changesSince(PropertyValues old):返回自上一个PropertyValues以来的更改。 子类也应该重写equals。

    boolean contains(String propertyName):判断该属性是否有属性值。

    boolean isEmpty():判断持有者是否为空。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值