2017-11-06 16:30:25

IOC:控制反转,将对象的创建权交由Spring管理。IOC底层原理:工厂类+反射+配置文件,创建对象交由工厂类完成。

DI(Dependency Injection):依赖注入,在Spring创建对象的过程中,把对象依赖的属性注入到类中。

  • IOC装配Bean

Spring框架Bean实例化的方法:

* 构造方法实例化(默认无参数构造):主要采用这种方法
* 静态工厂实例化
* 实例工厂实例化

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--默认采用无参构造进行实例化-->
    <bean id="bean1" class="spring2.Bean1"></bean>

    <!--采用静态工厂实例化,class为工场的类,并且要传方法名-->
    <bean id="bean2" class="spring2.Bean2Fac" factory-method="getBean2"/>

    <!--采用实例工场实例化-->
    <bean id="bean3fac" class="spring2.Bean3Fac"/>
    <bean id="bean3" factory-bean="bean3fac" factory-method="getBean3"/>

</beans>

 

类:

/**
 * 使用默认构造方法进行实例化
 */
public class Bean1 {

    public void method()
    {
        System.out.println("Hello spring.");
    }

    public void show(){
        System.out.println("Hello spring.");
    }
}

/**
 * 使用静态工厂实例化
 */

public class Bean2 {
}

public class Bean2Fac {
    public static Bean2 getBean2(){
        return new Bean2();
    }
}

/**
 * 使用实例工厂实例化
 */

public class Bean3 {

}

public class Bean3Fac {
    public Bean3 getBean3(){
        return new Bean3();
    }
}