Spring解密——Ioc基础知识

IOC的注入方式

  1. 构造方法注入
public FXNewsProvider(IFXNewsListener newsListner,IFXNewsPersister newsPersister){
	this.newsListner=newsListner;
	this.newsPersister=newsPersister;

IOC容器会检查被注入对象的构造方法,取得它所需要的依赖对象列表,进而为其注入相应的对象

  1. setter方法注入
getter/setter方法,更改相应对象的属性。对象可以在对象构造完成之后再注入
  1. 接口注入
    由于其强制被注入的对象实现不必要的接口,带有侵入性。因此它不太提倡

IOC也为单元测试提供了良好的基础

掌管大局的IOC容器

IOC容器的职责

  1. 业务对象的构建管理。在IoC场景中,业务对象无需关心所依赖的对象如何构建如何取得。IOC容器将对象的构建逻辑从客户端对象中剥离出来。
  2. IOC容器通过结合之前构建和管理的所有业务对象,以及各个业务对象间可以识别的依赖关系,将这些对象锁依赖的对象注入绑定,从而保证每个业务对象在使用的时候,可以处于就绪状态

IOC管理依赖对象的方式

  1. 直接编码方式
IoContainer container=...;
container.register(FXNewsProvider.class,new FXNewsProvider());

FXNewsProvider provider=container.get(FXNewsProvider.class);
  1. 配置文件方式XML
  2. 注解方式 @Autowired , @Component, @Bean

IOC容器之BeanFactory

IoC容器Core集成
Spring提供两种容器类型: BeanFactory、ApplicationContext

  1. BeanFactory:默认是采用延迟初始化策略 核心方法: getBean
  2. Application间接继承了BeanFactory,提供了事件发布、国际化信息支持等接口支持.ApplicationContext所管理的对象,在该类型容器启动之后,默认全部初始化完成

BeanDefinition
每一个Bean,在容器中都会有一个BeanDefinition的实例,该BeanDefinition实例负责保存对象的所有必要信息
其中 RootBeanDefinition / ChildBeanDefinition是BeanDefinition的实现类

未完待续

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值