Spring配置之属性注入1

本文详细介绍了Spring框架中四种常见的依赖注入方式:构造方法方式属性注入、set方法方式属性注入、P名称空间的属性注入及SpEL的属性注入,并通过实例演示了如何进行对象类型属性的注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跟着视频敲代码,类名对象名属性名都一样,有点小乱。对几个名称微调后测试,做个小总结。

常用的属性注入方式有四种:

  • 构造方法方式属性注入;
  • set方法方式属性注入;
  • P名称空间的属性注入;
  • SpEL的属性注入;

1、构造方法方式属性注入(常用为注入普通类型的属性注入,对象类型的属性注入与set方法注入对象类型的属性相似)

	<!-- 构造方法的方式 -->
	<bean id="car" class="com.itheima.spring.demo4.Car">
		<constructor-arg name="name" value="宝马"/>
		<constructor-arg name="price" value="800000"/>
	</bean>

2、set方法方式属性注入

①set方法注入普通类型的属性

<bean id="car2" class="com.itheima.spring.demo4.Car2">
		<property name="name" value="奔驰"/>
		<property name="price" value="1000000"/>
	</bean>

②set方法注入对象类型的属性

	<bean id="employee" class="com.itheima.spring.demo4.Employee">
		<!-- value:设置普通类型的值,ref:设置其他类型的id或name -->
		<property name="name" value="涛哥"/>
		<property name="car2" ref="car"/>	<!-- 将id="car"对应的类中的属性赋予Car类型的car2(与创建的时候对应) -->
	</bean>

前方高能请注意!

1、value:设置普通类型的值,ref:设置其他类型的id或name。

2、ref中的属性对应的类名(id为car对应的类名)需要和自己使用的类中(对象类型的)变量的类型相同。for example:
public class Employee {
	private String name;
	private Car car2;    //这里创建的是Car类型的对象car2,得与上方的配置分别对应
	
	public void setName(String name) {
		this.name = name;
	}
	public void setCar2(Car car2) {
		this.car2 = car2;
	}
	
	@Override
	public String toString() {
		return "Employee [name=" + name + ", car2=" + car2 + "]";
	}
	
}

测试:

	@Test
	/*
	 * set方法注入对象类型
	 */
	public void demo3() {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Employee employee = (Employee) applicationContext.getBean("employee");
		System.out.println(employee);
	}

输出:

Employee [name=涛哥, car2=Car [name=宝马, price=800000.0]]

set方法注入对象类型的属性的总结:

1、类中(对象类型的)变量的类型须与ref中的属性对应的类名相同(代码标处)

2、类中(对象类型的)变量名与注入的属性名相同(代码标处)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值