Spring IoC

1-IoC介绍

2021-08-20 321 2

简介 IoC的原理

1. IoC的原理

    1、什么是 IOC

    1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理

    2)使用 IOC 目的:为了耦合度降低

    3)做入门案例就是 IOC 实现

    2IOC 底层原理

    1xml 解析、工厂模式(IoC容器)、反射

upfile


2. IoC容器介绍

    1、 IOC 思想基于 IOC 容器完成, IOC 容器底层就是对象工厂

    2、 Spring 提供 IOC 容器实现两种方式:(两个接口)

    (1) BeanFactory: IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用

    * 加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象

    (2) ApplicationContext: BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人

    员进行使用

    * 加载配置文件时候就会把在配置文件对象进行创建

upfile



两个方法的参数是 Spring配置文件xml的路径

    FileSystemXmlApplicationContext配置路径是系统盘的路径

    ClassPathXmlApplicationContext配置路径是当前src路径

    

3. IoC操作

    1、什么是 Bean 管理

    (0) Bean 管理指的是两个操作

    (1) Spring 创建对象

    (2) Spirng 注入属性

    2、 Bean 管理操作有两种方式

    (1)基于 xml 配置文件方式实现

    (2)基于注解方式实现

    1、基于 xml 方式创建对象

    (1)在 spring 配置文件中,使用 bean 标签,标签里面添加对应属性,就可以实现对象创建

    (2)在 bean 标签有很多属性,介绍常用的属性

    * id 属性:唯一标识

    * class 属性:类全路径(包类路径)

    (3)创建对象时候,默认也是执行无参数构造方法完成对象创建

    2、基于 xml 方式注入属性

    (1) DI:依赖注入,就是注入属性

    如果不适用Spring框架,可以使用有参构造器、setXxx方法,给属性赋值(注入属性)


4. 属性注入

三种方式

upfile


5. 注入空值和特殊字符

    特殊字符的书写顺序:

    <!>

    <![]>

    <![[]]>

    <![CDATA[]]>

upfile


6. 外部Bean的注入

upfile


7. 集合的注入

upfile


8. 注入List,value是对象

upfile


9. FactoryBean的使用

    xml中配置的class路径跟实际返回的对象类型可以不一样。

    第一步 创建类,让这个类作为工厂 bean,实现接口 FactoryBean

upfile


第二步 实现接口里面的方法,在实现的方法中定义返回的 bean 类型



upfile


10. bean的单实例和多实例对象

        如何设置单实例还是多实例

        (1)在 spring 配置文件 bean 标签里面有属性( scope)用于设置单实例还是多实例

        (2) scope 属性值

        第一个值 默认值, singleton,表示是单实例对象

        第二个值 prototype,表示是多实例对象

        (3) singleton prototype 区别

        第一 singleton 单实例, prototype 多实例

        第二 设置 scope 值是 singleton 时候,加载 spring 配置文件时候就会创建单实例对象

        设置 scope 值是 prototype 时候,不是在加载 spring 配置文件时候创建 对象,在调用

        getBean 方法时候创建多实例对象

upfile


11. Bean的生命周期

    (1)通过构造器创建 bean 实例(无参数构造)

    (2)为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)

    (3)调用 bean 的初始化的方法(需要进行配置初始化的方法)

    (4) bean 可以使用了(对象获取到了)

    (5)当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)

    bean 的后置处理器, bean 生命周期有七步

    (1)通过构造器创建 bean 实例(无参数构造)

    (2)为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)

    (3)把 bean 实例传递 bean 后置处理器的方法 postProcessBeforeInitialization

    (4)调用 bean 的初始化的方法(需要进行配置初始化的方法)

    (5)把 bean 实例传递 bean 后置处理器的方法 postProcessAfterInitialization

    (6) bean 可以使用了(对象获取到了)

    (7)当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)


upfile

upfile

输出结果

1. BeanLife()...

2. setId

----before init----

3. initMethod()...

----before init----

4. get object: BeanLife{id=11}

5. destoryMethod()...


16. XML的自动装配(基本不用,都是基于注解实现)

(1)根据属性名称自动注入

<!--实现自动装配

bean 标签属性 autowire,配置自动装配

autowire 属性常用两个值:

byName 根据属性名称注入 ,注入值 bean 的 id 值和类属性名称一样

byType 根据属性类型注入

-->

    upfile


点赞 2

文章评论

欢迎您:

纸上得来终觉浅,绝知此事要躬行!

112 文章 59402 浏览 3 评论

联系我

  •   QQ:    361352119
  •  Email:  lisimmy@sina.com
  • 微信: