Bean属性的依赖注入

属性依赖注入的三种方式
什么是Bean属性的注入?就是对 一个对象的属性赋值。有三种方式:

  • 第一种:构造器参数注入
  • 第二种:setter方法属性注入(setter方法的规范-JavaBean规范)

注意:Spring 框架规范中通过配置文件配置的方式,只支持构造器参数注入和setter方法属性注入,不支持接口注入 !

注意:我这边是,构造器注入和setting方法注入,是一起进行书写的,所以,这两个可以放在一起进行使用

第一种:构造器参数注入 constructor-arg

public class User {
	String name;
	int age;
	Adress adress;
	public User(String name, int age, Adress adress) {
		super();
		this.name = name;
		this.age = age;
		this.adress = adress;
	}
	public User() {
		super();
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + ", adress=" + adress + "]";
	}
	
}

这里要注意,因为是通过有参构造函数进行注入的,所以必须存在有参构造函数,并且里面的值,向注入那个就在有参构造函数里面进行遗留那些参数

Index name type这三种用哪一种都行。如果里面有两个double的类型就不好找了,index,从0开始定位比较死,也不好,相对而言使用name会比较好

<!--
constructor-arg:通过构造器来注入属性的值,相当于new Car(,,)
1//一个该标签注入一个属性的值
属性:
1.类别:找到属性
index:根据索引定位属性
name:根据属性的名称定位属性
type:根据属性的类型定位属性
2.类别:给属性赋的值
value:简单的值数字,字符串,其他对象等等
ref: 复杂的对象(就是指bean),值: bean的名字
-->
<bean id="user" class="com.hisoft.mapper.User">
		<constructor-arg index="0" value="zdc"/>
		<constructor-arg index="1" value="21"/>
		<constructor-arg index="2" ref="address"/>
	</bean>

第二种:setter方法属性注入 property

使用的默认的构造器(new Bean()),但必须提供属性的setter方法

两步:

  1. 在类中加入setter方法
  2. 在配置文件中使用property
public class Adress {
	String adress;
	String city;
	String street;
	public Adress(String adress, String city, String street) {
		super();
		this.adress = adress;
		this.city = city;
		this.street = street;
	}
	public Adress() {
		super();
	}
	public String getAdress() {
		return adress;
	}
	public void setAdress(String adress) {
		this.adress = adress;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getStreet() {
		return street;
	}
	public void setStreet(String street) {
		this.street = street;
	}
	@Override
	public String toString() {
		return "Adress [adress=" + adress + ", city=" + city + ", street=" + street + "]";
	}
	
}

applicatcontext.xml配置

<!--在初始化person的时候,将属性的值注入进去
property:setter方法属性注入用
name: setter方法代表的属性,setXxx ,这里xxx, setId(Integer id) -这里name=id
value:简单值
ref:复杂(对象,bean名字)
-->

<bean id="address" class="com.hisoft.mapper.Adress">
		<property name="adress" value="河南"/>
		<property name="city" value="郑州"/>
		<property name="street" value="中原"/>
	</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值