您的位置:首页 > 编程语言 > Java开发

Spring实现控制反转(IOC)的三种方式(一)——属性注入

2017-10-12 17:40 477 查看
续上一篇:Spring实现控制反转(IOC)的三种方式(零)——理解IOC

这篇文章,来理解一下Spring IOC的属性注入(set注入)方法。还是用上一篇的程序员写代码的例子。

package com.spring.demo02.entity;

public class Programmer {

private String name;
private String sex;

// 在这里定义要依赖的computer属性,加上set方法
private Computer computer;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public Computer getComputer() {
return computer;
}

/**
* 加上Setter方法
* */
public void setComputer(Computer computer) {
this.computer = computer;
}

}

package com.spring.demo02.entity;
public class Computer {

private String brand;
private String color;
private String size;

public void coding() {
System.out.println("Computer is coding!!!");
}

public String getBrand() {
return brand;
}

public void setBrand(String brand) {
this.brand = brand;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public String getSize() {
return size;
}

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

}

看上面的代码,可以发现,Programmer类里面,有3个属性,name,sex,computer,并且都有对应的getter、setter方法;Computer类里面也有三个属性,分别是品牌、颜色、尺寸,也都有对应的getter、setter方法。这只是第一步,在类里面声明属性并且实现set方法。

接下来,要写一个spring的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-3.0.xsd">
<bean id="programmer" class="com.spring.demo2.entity.Programmer">
<property name="name" value="小李"></property>
<property name="sex" value="男"></property>
<property name="computer" ref="computer"></property>
</bean>

<bean id="computer" class="com.spring.demo2.entity.Computer">
<property name="brand" value="hp"></property>
<property name="color" value="黑"></property>
<property name="size" value="14"></property>
</bean>

</beans> 解读一下这个xml文件:
1.声明一个bean,可以理解为实例化了一个对象。那这里实例化了两个对象(programmer和computer),各个属性都已经赋值上去。(不知道这样理解对不对)

2.id为programmer的bean,其实就是Programmer类;通过给property赋值,Spring就会通过Programmer类的各个属性的set方法,逐一给Programmer的属性赋值。

3.在programmer里面,有一个属性是computer的,可以看到它属性值是 ref="computer",这就说明computer这个属性是个引用,这里ref后面的值其实就是指向另一个bean的id值,所以这里引用的是id为computer的bean。

以上,就是属性注入了。关键的是在类里面声明属性,写set方法,然后在xml里面配置bean和property的值。

如有错漏,还望指正,共同学习!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: