1.通过property配置bean
1 <!-- 配置一个 bean --> 2 <bean id="helloWorld" class="com.atguigu.spring.helloworld.HelloWorld"> 3 <!-- 为属性赋值 --> 4 <property name="user" value="Jerry"></property> 5 </bean> 6 7 <!-- 配置一个 bean --> 8 <bean id="helloWorld2" class="com.atguigu.spring.helloworld.HelloWorld"> 9 <!-- 为属性赋值 --> 10 <!-- 通过属性注入: 通过 setter 方法注入属性值 --> 11 <property name="user" value="Tom"></property> 12 </bean>
1 <!-- 配置 bean --> 2 <bean id="dao5" class="com.atguigu.spring.ref.Dao"></bean> 3 4 <bean id="service" class="com.atguigu.spring.ref.Service"> 5 <!-- 通过 ref 属性值指定当前属性指向哪一个 bean! --> 6 <property name="dao" ref="dao5"></property> 7 </bean>
2.通过property配置内部bean
1 <!-- 声明使用内部 bean --> 2 <bean id="service2" class="com.atguigu.spring.ref.Service"> 3 <property name="dao"> 4 <!-- 内部 bean, 类似于匿名内部类对象. 不能被外部的 bean 来引用, 也没有必要设置 id 属性 --> 5 <bean class="com.atguigu.spring.ref.Dao"> 6 <property name="dataSource" value="c3p0"></property> 7 </bean> 8 </property> 9 </bean>
3.通过构造器配置bean
1 <!-- 若一个 bean 有多个构造器, 如何通过构造器来为 bean 的属性赋值 --> 2 <!-- 可以根据 index 和 value 进行更加精确的定位. (了解) --> 3 <bean id="car" class="com.atguigu.spring.helloworld.Car"> 4 <constructor-arg value="KUGA" index="1"></constructor-arg> 5 <constructor-arg value="ChangAnFord" index="0"></constructor-arg> 6 <constructor-arg value="250000" type="float"></constructor-arg> 7 </bean> 8 9 <bean id="car2" class="com.atguigu.spring.helloworld.Car"> 10 <constructor-arg value="ChangAnMazda"></constructor-arg> 11 <!-- 若字面值中包含特殊字符, 则可以使用 DCDATA 来进行赋值. (了解) --> 12 <constructor-arg> 13 <value><![CDATA[<ATARZA>]]></value> 14 </constructor-arg> 15 <constructor-arg value="180" type="int"></constructor-arg> 16 </bean>
4.装配集合属性
<!-- 装配集合属性 --> <bean id="user" class="com.atguigu.spring.helloworld.User"> <property name="userName" value="Jack"></property> <property name="cars"> <!-- 使用 list 元素来装配集合属性 --> <list> <ref bean="car"/> <ref bean="car2"/> </list> </property> </bean> <!-- 声明集合类型的 bean --> <util:list id="cars"> <ref bean="car"/> <ref bean="car2"/> </util:list> <bean id="user2" class="com.atguigu.spring.helloworld.User"> <property name="userName" value="Rose"></property> <!-- 引用外部声明的 list --> <property name="cars" ref="cars"></property> </bean>
(注:集合属性还可以是配置map集合,也可以是配置props,操作类似,各位可以自行研究。)
5如果想为属性设置null值,可以如下操作
<bean id="dao2" class="com.atguigu.spring.ref.Dao"> <!-- 为 Dao 的 dataSource 属性赋值为 null, 若某一个 bean 的属性值不是 null, 使用时需要为其设置为 null(了解) --> <property name="dataSource"><null/></property> </bean>
6.可以使用p命名空间进行配置bean操作
1 <bean id="user3" class="com.atguigu.spring.helloworld.User" 2 p:cars-ref="cars" p:userName="Titannic"></bean>