02_spring的IoC和DI

###IoC:Inverse of Control(控制反转):
将原本在程序中手动创建对象的控制权,交由Spring框架来管理。

IoC:Inverse of Control(控制反转):

读作“反转控制”,更好理解,不是什么技术,而是一种设计思想,好比于MVC。就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。

正控:若调用者需要使用某个对象,其自身就得负责该对象的创建。
反控:调用者只管负责从Spring容器中获取需要使用的对象,不关心对象的创建过程,也就是把创建对象的控制权反转给了Spring框架。
在这里完美地体现了好莱坞法则(Don’t call me ,I’ll call you)。

DI:Dependency Injection(依赖注入)

从字面上分析:
IoC:指将对象的创建权,反转给了Spring容器; 
DI :指Spring创建对象的过程中,将对象依赖属性(简单值,集合,对象)通过配置设值给该对象。
IoC和DI其实是同一个概念的不同角度描述,DI相对IoC而言,明确描述了“被注入对象依赖IoC容器配置依赖对象”。

Container:容器,在生活中容器就是一种盛放东西的器皿,从程序设计角度看作是装对象的对象,因为存在对对象的存入、取出等操作,所以容器还要管理对象的生命周期。

Spring第一个spring测试程序
1.准备jar包
spring-beans-4.1.2.RELEASE.jar
spring-core-4.1.2.RELEASE.jar
com.springsource.org.apache.commons.logging
如果执行测试时报错(java.lang.ExceptionInInitializerError)
则需要将错误复制出来,查看完整错误,一般是spring4.2.4.RELEASE和junit4.8的版本问题,要么降低spring4.2.4版本,要么升级junit到4.9

public class HelloSpring {
@Setter  //必须有set属性
private String name;

public void say() {
	System.out.println("hello---" + name);
}

}
@Test

//把创建的对象交给spring框架管理
public void test1() throws Exception {
	//1读取资源文件
	Resource resource = new ClassPathResource("/applicationContext.xml");
	//2创建spring容器对象
	BeanFactory bf = new XmlBeanFactory(resource);
	//3从srping容器中获得指定名称对象
	HelloSpring hello = bf.getBean("helloSpring", HelloSpring.class);	

配置applicateion.xml文件





	
		
	

你可能感兴趣的:(spring)