BeanFactory源码体系解析--AutowireCapableBeanFactory二

AutowireCapableBeanFactory:可自动装配的BeanFactory
1、为已经实例化的对象装配属性,这些属性对象都是Spring管理的
2、实例化一个Bean,并自动装配Spring管理的属性,但是实例化的Bean可以不被Spring管理,此接口主要针对框架职位
没有向Spring托管Bean的应用。通过暴露此功能,Spring框架之外的程序也具有自动装配的能力。可以使用这个接口集成
其他框架,注入并不由Spring管理生命周期并已存在的实例,类似WebWork的Actions、Tapestry Page
自动装配的5中策略
1、AUTOWIRE_NO 没有外部(XML文件)定义的自动装配、不进行自动装配,但是BeanFactoryAware、注解渠道定义的人有效
2、AUTOWIRE_BY_NAME 按名称装配Bean的属性,调用属性的Setter方法进行注入
3、AUTOWIRE_BY_TYPE 按类型装配Bean的属性,调用属性的Setter方法进行注入
4、AUTOWIRE_CONSTRUCTOR 按构造方法进行装配,贪婪原则,优先惦使用参数个数多的构造方法,以便注入更多依赖
5、AUTOWIRE_AUTODETECT 自动匹配模式 Spring3.0被弃用。
主要方法
1、resolveDependency() 解析依赖
2、createBean(Class<T> beanClass) 创建一个指定class的实例
3、configureBean() 配置Bean
4、initializeBean() 初始化Bean,初始化过程应用BeanPostProcessor用到的applyBeanPostProcessorsBeforeInitialization()
、applyBeanPostProcessorsAfterInitialization()
5、destroyBean() 销毁bean
6、autowire(Class<?> beanClass, int autowireMode, boolean dependencyCheck) 通过指定的自动装配策略来初始化一个Bean
7、autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck)通过指定的自动装配方式来对给定的Bean进行自动装配
8、applyBeanPropertyValues(Object existingBean, String beanName)将参数中指定了那么的Bean,注入给定实例当中
9、initializeBean(Object existingBean, String beanName)初始化参数中指定的Bean,调用任何其注册的回调函数,setBeanName,setBeanFactory等
10、resolveNamedBean(Class<T> requiredType)查找唯一符合指定类的实例,如果有则方法实例的名称和实例本身

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值