spring IOC 容器知识点

Spring IOC 容器

一、概念

1.理念:让别人为你服务。

  • 原来是需要什么东西自己去拿,现在是需要什么东西就让别人送过来。 当然,想要让 IOC 提供服务,并将所需要的被依赖对象送过来,就需要通过某种方式通知对方

2.三种注入方式

  • 构造方法注入 :对象在构造完成之后,即进入就绪状态。但是构造方法无法被继承

  • setter方法注入:可对象构造完后再注入。setter方法可以被继承,但是对象无法在构造完成后进入就绪状态

  • 接口注入:强制被注入对象实现不必要的接口,带有侵入性

3.IOC容器的作用

  • 资源的集中管理,实现了资源的可配置和易管理

  • 降低了使用资源双方的依赖程度

  • 构造对象,管理其生命周期(scope 为 prototype的只负责构建,不负责管理生命周期)

4.容器类型

  • BeanFactory:默认采取延迟初始化策略,只有当客户端对象需要访问容器中的某个受管对象的时候,才会进行初始化 及 依赖注入操作

  • ApplicationContext:在启动的时候完成所有初始化

  • 下图是 BeanFactory 与 ApplicationContext 的继承关系





二、BeanFactory

1. BeanFactory定义:

  • BeanFactory 是一个接口,基础类型的 IOC 容器,提供完整的 IOC 服务。

2. BeanFactory、BeanDefinitionRegistry 以及 DefaultListableFactory 的关系

  • BeanDefinition 的实例负责保存对象的所有信息

  • BeanDefinitionRegistry 保存了一组 BeanDefinition,就像是图书馆的书架,所有的书都是放在书架上的。其定义了Bean的注册逻辑

  • BeanFactory:负责Bean的注册以及管理工作
    12

3. 配置文件方式

  • 当采用外部配置文件时,spring ioc 容器有一个统一的处理方式。通常情况下,需要根据不同的外部配置文件格式,给出相应的 BeanDefinitionReader 实现类,有 BeanDefinitionReader 的相应实现类负责将相应的配置文件内容读取并映射到BeanDefinition,然后将映射后的BeanDefinition 注册到一个BeanDefinitionRegistry,BeanDefinitionRegistry 完成Bean的注册 和 加载

4. 注解方式

  • 用 @Component、@Autowired、@Service、@Controller  告知 spring容器需要为当前对象注入哪些依赖对象。在 spring 的配置文件中 用<context:component-scan/> 指定扫描标注有以上4个注解的类,如果找到,则将它们添加到容器进行管理,并为其注入符合条件的依赖对象

5. spring 配置文件bean的配置

1. <beans> :对管辖的<bean> 进行统一的默认行为设置
  • default-lazy-init :标志是否对所有的bean进行延迟初始化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值