###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文件
<?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">
<beans>
<bean name="helloSpring" class="全限定类名">
<property name="需要注入的属性名称" value="注入值" />
</bean>
</beans>