Spring——IOC底层原理

本文深入探讨了Spring的IOC(控制反转)原理,包括什么是IOC及其目的,详细阐述了IOC的XML解析、工厂设计模式和反射的底层实现。接着,介绍了BeanFactory和ApplicationContext两大IOC接口,分析了它们的特点和应用场景。最后,详细讨论了基于XML的Bean管理,包括对象创建、依赖注入的各种方式,如set方法注入、构造器注入、p名称空间注入、注入其他类型属性、注入外部和内部bean、注入集合类型,并深入讲解了属性注入的细节。
摘要由CSDN通过智能技术生成

目录

一、IOC底层原理

1.什么是IOC

2.IOC底层原理

二、IOC接口(BeanFanctory)

三、IOC操作Bean管理(基于XML)

1.创建对象

2.注入属性

(1)DI:依赖注入

(2)p名称空间注入(了解)

(3)注入其他类型属性

(4)注入外部bean 

(5)注入内部bean和级联赋值

(6)注入集合类型

 4.属性注入细节


一、IOC底层原理

1.什么是IOC

        通过控制反转(Inversion of Control,缩写为IOC),对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

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

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

        3)入门案例即为IOC的实现(入门案例:【网址】)

2.IOC底层原理

(1)XML解析 + 工厂设计模式 + 反射(令耦合度尽可能的降低到最小)

通过画图来讲解IOC底层原理:

二、IOC接口(BeanFanctory)

  1. IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
  2. Spring提供IOC容器实现的两种方式(两个接口,两个接口均可加载XML文件并且获取配置创建的对象):

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

                特点:加载配置文件时不会创建对象,而是在获取对象或者使用对象时才去创建对象。

        (2)ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般面向开发人员使用。

                特点:加载配置文件时,直接创建对象。

 ApplicationContext中有两个主要的实现类:

1. FileSystemXmlApplicationContext:括号中时配置文件的全路径。

2. ClassPathXmlApplicationContext:括号中直接配置文件名。

三、IOC操作Bean管理(基于XML)

Bean管理(两个操作):

        (1)Spring创建对象

        (2)Spring属性注入

1.创建对象

                

                a. 在Spring配置文件中,使用bean标签,标签里面添加对应的属性,就可以实现对象创建。

                b. 在bean标签中有很多属性,常见的有:

                * id 属性:设置类的唯一标识(并不是直接指对象名称);

                * Class属性 :类全路径(包类路径);

                c. 创建对象的时候,默认执行无参构造器方法(若使用有参构造器,且未构成无参构造器,此时无参构造器被覆盖,所以常规获取对象方式报错)

2.注入属性

(1)DI:依赖注入

是AOC的一种具体实现,必须在创建对象的基础之上完成。

 * 第一种注入方式:set方法注入

i.

/**
 * 演示使用set方法进行属性注入
 */
public class Book {
    //创建属性
    private String bname;
    private String bauthor;

    //创建属性对应的set方式注入

    public void setBname(String bname) {
        this.bname = bname;
    }

    public void setBauthor(String bauthor) {
        this.bauthor = bauthor;
    }
    
    public void TestBook(){
        System.out.println(bname + " :: "+bauthor);
    }
}

 ii.在Spring配置文件中配置对象创建,配置属性注入

<bean id="Book" class="
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值