spring IOC

来源:互联网 发布:什么是数据透视表 编辑:程序博客网 时间:2024/06/03 20:32

spring IoC 初步理解

之前的代码里一整就会出现这个context那个context,这个上下文那个上下文的。究其原因都是springIoC容器的知识。阅读《spring揭秘》这本书,自己总结了一下学习到了IoC。

1. IoC为我们解决了什么问题

在没有容器的年代,我们用一个方法的时候通常是两步 1 new A 2 xxx.method()
有了容器之后,我们就可以告诉容器我们的需要A 并且直接调用A的方法就可以了

2. bean的注入方式

说到容器,bean就不得不说了,bean就是IoC中类的实例
将bean放入IoC中 ,主要有三种方式

  • 构造方法

  • setter方法

  • *接口注入

3. IoC service provider

IoC所有功能中有一个东西叫IoC service provider,它主要的职责是对象的构建管理和对象的以来绑定
他构建管理对象的方法主要有三种

  • 直接编码方式,就是通过一个方法直接注册实例

  • 配置文件

  • 元数据的方式,@inject
    IoC service provider描述

4. 容器类型

IoC一共有两种容器:BeanFactory 和 ApplicationContext
这里写图片描述

如图所示,ApplicationContext是在BeanFactory 的基础之上构建的,并且提供更多的功能,包括:

  • 统一的资源管理策略

  • 国际化信息支持

  • 容器内时间发布

  • 简化的多配置文件家在功能

5. 来看BeanFactory

5.1 BeanFactory IoC容器,所以他首先是能够做到一个传唤实例的作用

BeanFactory c = new xml(“A的路径”);//通过路径获取bean,并将其放在容器中
A a = c.getBean(“A”); //在容器中获取A
a.method();//调用a的方法
他的三种注册和绑定方式的实现:

  • 直接编码,如上

  • 配置文件 ,

  • 注解,例如@component

5.2 bean的scope类型

bean的scope是用来声明容器中的对象的应用场景或者对象的生命周期

  • singleton:生命周期与容器一致

  • prototype:对于该对象来说,每一次请求都要生成一个新的实例

  • request,session:每个http请求生成一个新的实例,session存在时间更长一点

  • globle session:和session一样的生命周期

5.3 IoC的实现

IoC的实现主要分启动阶段和实例化阶段
这里写图片描述
用什么方式初始化bean实例,容器的内部实现主要用的是策略模式,例如 反射,CGLIB动态字节码方式

6. ApplicationContext

以为他是继承BeanFactory的,所以BeanFactory的所以功能他都有

0 0
原创粉丝点击