Java自学之路-Java中级教程-3:Spring控制反转IOC、依赖注入DI、依赖查找DL

Spring中有一个IOC的概念,即控制反转(Inversion of Control),是指Spring框架创建对象,而非Java开发者来创建对象,也就是把控制权反交给Spring框架。本来要创建对象,需要开发者用new关键字来创建和赋值,对象控制权在开发者手中。现在反过来了,由Spring框架负责对象初始化,要使用对象就要从Spring管理的Context中获取。

 

Spring的控制反转由依赖注入和依赖查找构成。某个对象依赖另一个对象,即是某个对象中包含另一个对象,某个对象要创建就需要先创建另外的对象,所以某个对象对另外的对象产生了依赖。

 

比如Person类,它有一部分是Hand,有一部分是Head,还有Foot。因为Foot要穿鞋子,鞋子尺码定义为size。下面就把这几个类通过Spring来创建。

public class Foot {

private int size;

public int getSize() {
return size;
}

public void setSize(int size) {
this.size = size;
}

}

public class Hand {

}

 

public class Head {

}

 

 

public class Person {

private int id;

private String nation;

private Hand hand;

private Head head;

private Foot foot;

}

Person类中应该包括各个属性的get和set方法,这里省略不写。

 

下面在Spring的beans.xml中定义这个Person类的bean。bean在spring中代表实例对象的定义,bean中可以定义property标签,作为实例对象的属性定义。

Java自学之路-Java中级教程-3:Spring控制反转IOC、依赖注入DI、依赖查找DL_第1张图片

在beans.xml中定义了head、hand、foot属性,并且用ref标签指向名称为head、hand、foot的bean。这种使用ref来引用其他实例对象的做法,就是依赖注入(Dependency Insert)。而Spring通过ref查找到id="head"标签所代表的com.helloworld.Head对象,即是依赖查找(Dependency Lookup)。

 

在上一节创建的SpringMain类中,使用person.getFoot().getSize()就可以取到鞋子尺码的注入值了。

 

 

import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.helloworld.Person;

public class SpringMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		FileSystemXmlApplicationContext ac = new FileSystemXmlApplicationContext("E:/helloworld/beans.xml");
		Person person = (Person) ac.getBeanFactory().getBean("person");

		System.out.println("person.getFoot().getSize():" + person.getFoot().getSize());

	}

}

配套进阶视频教程:

https://edu.csdn.net/combo/detail/938

 

Java中级SSH框架项目开发设计教程

Java自学之路-Java中级教程-3:Spring控制反转IOC、依赖注入DI、依赖查找DL_第2张图片

 

 

Java自学之路-Java中级教程-3:Spring控制反转IOC、依赖注入DI、依赖查找DL_第3张图片

Java视频教程

 

你可能感兴趣的:(Java中级教程)