Spring属性注入

1、注入方式

(1)set方法注入

<bean name="user" class="club.ityuchao.domain.User">
	<!-- 值类型注入 -->
	<property name="name" value="tom"></property>
	<property name="age" value="21"></property>
	<!-- 引用类型 -->
	<property name="car" ref="car"></property>
</bean>
<bean name="car" class="club.ityuchao.domain.Car">
	<property name="name" value="兰博基尼"></property>
	<property name="color" value="yellow"></property>
</bean>

(2)构造函数注入

通过以下三个参数可以确认任何构造函数

name:属性名

index:属性在构造方法参数中第几个

type:该参数类型

<bean  name="user2" class="club.ityuchao.domain.User">
	<constructor-arg name="name" index="0" type="java.lang.Integer" value="101"></constructor-arg>
	<constructor-arg name="age" value="25"></constructor-arg>
</bean>

(3)p名称空间注入(了解)

其实还是走的set方法

A)导入p名称空间

xmlns:p="http://www.springframework.org/schema/p"

B)使用p:属性完成注入

<bean name="user3" class="club.ityuchao.domain.User" p:name="lisi" p:age="55" p:car-ref="car">
</bean>

(4)spel注入(了解)

spel:Spring expression Language

<bean name="user4" class="club.ityuchao.domain.User">
	<property name="name" value="#{user.name}"></property>
	<property name="age" value="#{user2.age}"></property>
	<property name="car" ref="car"></property>
</bean>

2、复杂注入

以这个javaBean为例:

public class CollectionBean {

	private Object[] arr;
	private List list;
	private Map map;
	private Properties properties;
	@Override
	public String toString() {
		return "CollectionBean [arr=" + Arrays.toString(arr) + ", list=" + list + ", map=" + map + ", properties="
				+ properties + "]";
	}
	public Object[] getArr() {
		return arr;
	}
	public void setArr(Object[] arr) {
		this.arr = arr;
	}
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public Map getMap() {
		return map;
	}
	public void setMap(Map map) {
		this.map = map;
	}
	public Properties getProperties() {
		return properties;
	}
	public void setProperties(Properties properties) {
		this.properties = properties;
	}
	
}

(1)数组

如果数组的值只有一个可以直接使用value属性或ref:

<bean name="collection" class="club.ityuchao.domain.CollectionBean">
	<property name="arr" value="rose"></property>
</bean>

多个:

<property name="arr">
	<array>
		<value>tom</value>
		<value>jerry</value>
		<ref bean="user"/>
	</array>
</property>

(2)List

如果list/set的值只有一个可以直接使用value属性或ref:

<bean name="collection" class="club.ityuchao.domain.CollectionBean">
	<property name="list" ref="user"></property>
</bean>

多个:

<property name="list">
	<list>
		<value>lisi</value>
		<value>rose</value>
		<ref bean="user"/>
	</list>
</property>

(3)Map

<property name="map">
	<map>
		<entry key="url" value="jdbc:mysql///ally"></entry>
		<entry key="name" value="root"></entry>
		<entry key-ref="user" value-ref="user2"></entry>
	</map>
</property>

(4)Properties

<property name="properties">
	<props>
		<prop key="username">root</prop>
		<prop key="password">123</prop>
		<prop key="driver">com.jdbc.mysql.Driver</prop>
	</props>
</property>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值