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

续上一篇: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的值。

如有错漏,还望指正,共同学习!!!




  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值