Spring IOC容器中注入bean
Posted 码农翻身
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring IOC容器中注入bean相关的知识,希望对你有一定的参考价值。
一、基于schema格式的注入
1、基本的注入方式 (属性注入方式)
根据setXxx()方法进行依赖注入,Spring只会检查是否有setter方法,是否有对应的属性不做要求
<bean id="student" class="com.lq.ioc.Student"> <property name="name" value="zhansan"></property> <property name="age" value="20"></property>
</bean>
<bean id="student" class="com.lq.ioc.Student"> <property name="name"> <value>zhangsan</value> </property> <property name="age"> <value>20</value> </property> </bean>
2.构造函数方式注入
<bean id="student1" class="com.lq.ioc.Student"> <constructor-arg name="name" value="zhangsan"></constructor-arg> <constructor-arg name="age" value="20"></constructor-arg> </bean>
<bean id="student1" class="com.lq.ioc.Student"> <constructor-arg type="java.lang.String"><value>lisi</value></constructor-arg> <constructor-arg type="int"><value>15</value></constructor-arg> </bean>
<bean id="student1" class="com.lq.ioc.Student"> <constructor-arg index="0" value="zhangsan"></constructor-arg> <constructor-arg index="1" value="21"></constructor-arg> </bean>
3.当注入的属性中含有xml中的特殊字符时,如: < > & " \'
1.用<![CDATA[<wangwu>]]>
<bean id="student1" class="com.lq.ioc.Student"> <constructor-arg index="0"> <value><![CDATA[<wangwu>]]></value> </constructor-arg> <constructor-arg index="1" value="21"></constructor-arg>
</bean>
2.用转义字符
<bean id="student1" class="com.lq.ioc.Student"> <property name="name"> <value><wang></value> </property> <property name="age" value="11"></property> </bean>
4.引用其它bean
<bean id="school" class="com.lq.ioc.School"/> <bean id="student1" class="com.lq.ioc.Student"> <property name="name"> <value><wang></value> </property> <property name="age" value="11"></property> <property name="school" ref="school"></property>
</bean>
5.内部bean
<bean id="student1" class="com.lq.ioc.Student"> <property name="name"> <value><wang></value> </property> <property name="age" value="11"></property> <property name="school"> <bean id="school" class="com.lq.ioc.School"/> </property> </bean>
6.往bean中注入null
<property name="name"> <null/> </property>
7.集合类属性
List
<bean id="school" class="com.lq.ioc.School"> <property name="name" value="ql"/> <property name="student"> <list> <ref bean="student1"/> </list> </property> </bean>
set
<bean id="school" class="com.lq.ioc.School"> <property name="name" value="ql"/> <property name="student"> <set> <ref bean="student1"/> </set> </property> </bean>
map
<bean id="school" class="com.lq.ioc.School"> <property name="name" value="ql"/> <property name="student"> <map> <entry> <key><ref bean="student1"/></key> <value>1</value> </entry> </map> </property> </bean>
props
<bean id="school" class="com.lq.ioc.School"> <property name="name" value="ql"/> <property name="student"> <props> <prop key="student1">zhansa</prop> <prop key="student2">lisi</prop> </props> </property> </bean>
8.通过util配置集合
<util:properties id="List1"> <prop key="student1">zzz</prop> <prop key="student2">lisi</prop> </util:properties>
9.工厂类注入
<bean id="studentFactory" class="com.lq.ioc.StudentFactory"/> <bean id="student" factory-bean="studentFactory" factory-method="createStudent"/>
静态工厂类注入
<bean id="student" class="com.lq.ioc.StudentFactory" factory-method="createStudent"/>
10.配置数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost/sampledb" p:username="root" p:password="123"/>
以上是关于Spring IOC容器中注入bean的主要内容,如果未能解决你的问题,请参考以下文章