Spring的依赖注入

依赖注入的三种方式:
1、set注入:使用setxxx()的方式赋值
赋值默认使用的是set方法,依赖注入的底层是通过反射实现的。

<bean id="s1" class="com.yao.spring.di.Student">
		<property name="id" value="10055"></property>
		<property name="name" value="张三三"></property>
		<property name="age" value="23"></property>
		<property name="sex" value="男"></property>
	</bean>

2、通过构造器注入:使用构造方法赋值

<bean id="s2" class="com.yao.spring.di.Student">
		<constructor-arg value="10086"></constructor-arg>
		<constructor-arg value="李四"></constructor-arg>
		<constructor-arg value="24"></constructor-arg>
		<constructor-arg value="女"></constructor-arg>
	</bean>

注意:如果的顺序与构造方法的参数顺序不一致时,则需要通过type或者index或name来指定。
3、p命名空间注入
注意:先要引入命名空间
进行赋值的代码如下:

<bean id="s4" class="com.yao.spring.di.Student" p:id="10033" p:name="赵六" p:age="26" p:sex="男" p:teacher-ref="teacher"></bean>

<bean id="teacher" class="com.yao.spring.di.Teacher">
		<property name="tid" value="10000"></property>
		<property name="tname" value="小明"></property>
	</bean>

简单类型(基本类型+String):p:属性名=“属性值”
引用类型:p:属性名-ref=“引用的id”

集合注入

<!-- list集合,集合元素为字面量 -->
	<bean id="t1" class="com.yao.spring.di.Teacher">
		<property name="tid" value="0000"></property>
		<property name="tname" value="小红"></property>
		<property name="cls">
			<list>
				<value>a</value>
				<value>b</value>
				<value>c</value>
			</list>
		</property>
	</bean>
	
	<!-- list集合,集合元素为引用类型 -->
	<bean id="t2" class="com.yao.spring.di.Teacher">
		<property name="tid" value="10002"></property>
		<property name="tname" value="小章"></property>
		<property name="student">
			<list>
				<ref bean="s1"/>
				<ref bean="s2"/>
				<ref bean="s3"/>
			</list>
		</property>
	</bean>
	
	<!-- map集合 -->
	<bean id="t3" class="com.yao.spring.di.Teacher">
		<property name="tid" value="10003"></property>
		<property name="tname" value="小wang"></property>
		<property name="bossMap">
			<map>
				<entry>
					<key>
						<value>1003</value>
					</key>
					<value>老王</value>
				</entry>
				<entry>
					<key>
						<value>1004</value>
					</key>
					<value>老无</value>
				</entry>
			</map>
		</property>
	</bean>
	
	<!-- 在命名空间中增加util,即可使用util:list作为一个list的bean,供其他对象引用 -->
	<bean id="t4" class="com.yao.spring.di.Teacher">
		<property name="tid" value="1004"></property>
		<property name="tname" value="王老师"></property>
		<property name="student" ref="students"></property>
	</bean>
	
	<util:list id="students">
			<ref bean="s4"/>
			<ref bean="s5"/>
	</util:list>
	
	<!-- 数组,集合元素为引用类型 -->
	<bean id="t5" class="com.yao.spring.di.Teacher">
		<property name="tid" value="1004"></property>
		<property name="tname" value="送老师"></property>
		<property name="stuarr">
		<array>
			<ref bean="s1"/>
			<ref bean="s2"/>
			<ref bean="s3"/>
		</array>
		</property>
	</bean>
	
	<!-- set集合,集合元素为引用类型 -->
	<bean id="t6" class="com.yao.spring.di.Teacher">
		<property name="tid" value="1004"></property>
		<property name="tname" value="送老师"></property>
		<property name="stuset">
			<set>
				<ref bean="s1"/>
				<ref bean="s2"/>
				<ref bean="s3"/>
			</set>
		</property>
	</bean>
	<!-- s1  s2  s3 是定义的一些bean的id -->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值