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;
}
}
看上面的代码,可以发现,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的值。
如有错漏,还望指正,共同学习!!!
这篇文章,来理解一下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的值。
如有错漏,还望指正,共同学习!!!
相关文章推荐
- Spring实现控制反转(IOC)的三种方式(二)——构造器注入
- Spring实现IOC(控制反转)的三种方式
- spring IOC(控制反转)和DI(依赖注入)以及三种依赖注入方式的比较
- Spring实现控制反转(IOC)的三种方式(三)——自动装配
- Spring实现控制反转(IOC)的三种方式(零)——理解IOC
- Spring学习3—控制反转(IOC)基于Annotation(注解)的依赖注入实现
- Spring学习3—控制反转(IOC)基于Annotation(注解)的依赖注入实现
- Spring -- 控制反转IoC/依赖注入DI的实现
- Spring学习之路第一步 : xml方式实现IOC(控制反转)
- Spring 使用注解的方式实现IOC和DI(控制反转和依赖注入)
- spring——控制反转简单例子 (Spring三种注入方式)
- lesson one:spring ioc,属性注入方式,实现自己的beanfactoy
- spring四种依赖注入方式 ( 依赖注入DI+ 控制反转IOC的原理)
- Spring 4 学习笔记2:控制反转(IoC)和依赖注入(DI)
- Spring依赖注入的三种方式详解之一:属性注入
- ######【spring属性注入(Ioc的DI)总结】:注解方式属性注入,属性名任意.=for理解:Aop注入代理对象时,注入被增强类对象时,属性名为proxy(自定义)。
- Spring IOC三种注入方式(接口注入、setter注入、构造器注入)
- Spring学习笔记(6)——IoC的三种注入方式
- spring反转控制IOC或依赖注入之简单示例
- Spring三种注入属性的方式