Spring框架——IOC

 一、什么是IOC(Inversion of Control)控制反转

IOC是一种设计思想,是为了降低代码耦合出现,为了方便理解也可以用“依赖注入”来解释。

IOC思想解决的场景是:

        存在两个类,class A 和 class B ,若想要在A中使用B的属性和方法,那么常规的解决方法是在A中创建一个B类的对象b,通过对象b来调用属性或方法。这可以说是类A依赖于类B,A的对象a依赖于B的对象b。而IOC思想反转了这种依赖关系。

Spring框架——IOC_第1张图片

IOC的底层实现涉及到了三个部分:xml解析,对象工厂和属性注入。 

那么首先我们需要解决三个问题:

一、IOC容器创建的是什么对象

二、IOC容器如何管理对象

三、IOC容器如何实现依赖关系

第一个问题——SpringBean

        IOC容器中的对象为bean对象。spring启动时,bean对象就会被IOC容器创建并调用。

        对于创建springbean对象,IOC容器提供了两种实现方式,BeanFactory & ApplicationFactory

  • BeanFactory在加载配置文件时并不创建对象,程序使用这个对象时才创建它
  • ApplicationFactory在加载配置文件时创建对象。相当于在准备阶段就由服务器完成对象创建工作,在程序运行过程中不需要再分配资源,以提高效率。因此多使用ApplicationFactory实现方法。

第二个问题——管理对象包含了两种含义:创建对象和属性注入

class A(){
    private int age;
}

class B(){
    A a = new A();//创建对象
    a = A(18);//属性注入
}

        以一种简单的方式来理解属性注入,其实就是给属性赋值。Spring提供了两种管理对象的方式,一种是通过xml配置文件,一种是通过注解。

(一)通过配置文件xml来创建和管理bean对象

  • 1.1创建对象
//有类User




     
    
    


  • 1.2注入属性(为创建的bean对象的属性赋值) 
    • 常规的注入属性的方式有两种,一种是通过set方法给对应的属性赋值;另一种是通过有参构造函数,在创建对象的同时进行赋值。对应这两种方式,配置文件分别提供了一种标签来完成属性注入。

1.2.

你可能感兴趣的:(spring,java,mybatis)