IOC(控制反转)是spring的核心之一,是对对象实例化管理的一种容器,类对象的生命周期交给spring容器管理
DI(依赖注入)也是spring的核心之一,IOC动态创建对象的过程中,需要通过依赖注入的方式对对象进行实例化和赋值
DI(依赖注入有三种方式) 1、 属性set方法注入 2、 构造器注入 3、 接口注入
一、依赖注入
1、 打开eclipse 创建java工程
2、 导入spring核心包
3、编写一个Category类,注意要有无参构造方法和属性的set方法
public class Category {
private int id;
private String name;
public Category(int id, String name) { //用于构造器注入
super();
this.id = id;
this.name = name;
}
public Category() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Category [id=" + id + ", name=" + name + "]";
}
}
4、 编写spring核心配置文件 applicationContext.xml(名字自定义) ,property标签给category的属性赋值,通过set方法
<?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="category" class="com.neuede.springcore.Category">
<!-- 构造器注入 -->
<constructor-arg name="id" value="1" />
<constructor-arg name="name" value="category"/>
<!-- 属性set方法的注入 当有两个方式注入时,只有set方法注入方式生效-->
<property name="id" value="1" />
<property name="name" value="category" />
</bean>
</beans>
5、编写测试类
public class TestCategory {
public static void main(String[] args) {
String configLocation = "config/applicationContext.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(configLocation);
Category category = (Category) context.getBean("category");
System.out.println(category.toString());
}
}
6、结果