一、概述
1.项目环境:jdk版本:jdk-10.0.1,IDE版本:Eclipse Java EE IDE for Web Developers (4.7.3a),
服务器版本:tomcat9.0 字符集:UTF-8,操作系统版本:Windows7旗舰版
2.完成时间:2019.4.22
3.作者:任鑫
4.项目花费时间:30分钟
二.、项目描述
用文字描述spring的控制反转IOC是什么?并使用代码实现IOC的测试。
IOC,控制反转是一个思想。控制反转就是将对象的创建从java代码转移到外部容器中,比如spring中,把对象的创建,初始化,销毁交给容器去做,由容器区控制对象的生命周期。
DI,依赖注入是在程序运行中,如果需要调用其他对象,不需要在代码中创建,由外部容器创建后传递给程序。依赖注入是目前最好的解耦方式。
IOC是一种思想,DI是IOC实现的一种方式.
三、源代码
Star类
package com.bjsxt.pojo;
public class Star {
private String name;
private int age;
private Partner partner;
public Partner getPartner() {
return partner;
}
public void setPartner(Partner partner) {
this.partner = partner;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Star [name=" + name + ", age=" + age + ", partner=" + partner + "]";
}
}
Partner类
package com.bjsxt.pojo;
public class Partner {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Partner [name=" + name + "]";
}
}
applicationContext.xml
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">
SomeTest类
package com.bjsxt.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.bjsxt.pojo.Partner;
import com.bjsxt.pojo.Star;
public class SomeTest {
@Test
public void someTest01(){
//创建容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Star star = ac.getBean("star", Star.class);
Partner partner =ac.getBean("partner",Partner.class);
System.out.println(star);
System.out.println(partner);
}
}