1.set方法注入
<!--DI依赖注入的方式:set方法注入 -->
<bean id="car" class="dao.Car">
<property name="brand" value="奥迪双钻"></property>
<property name="crop" value="我的伙伴"></property>
<property name="price" value="400000"></property>
</bean>
会调用Car的set方法,怎样确定对应哪个属性,则由set方法后的名字决定
如:setBrand 就对应上述bean对象的brand属性。
2.构造器方式注入
<!--DI依赖注入的方式:构造器的方式注入 -->
<bean id="car1" class="dao.Car">
<constructor-arg value="宝马" index="0"></constructor-arg>
<constructor-arg value="50000" index="2" type="java.lang.Double"></constructor-arg><!-- type表示要赋给那种类型的参数-->
<constructor-arg value="一汽" index="1"></constructor-arg>
</bean>
会调用Car类的构造器来定义bean对象属性,(要注意要定义空的构造器)如:
//后定义的构造器,获取的时候先获取(有除构造方法以外的其它方法的时候),否则就是相反
public Car() {
}
public Car(String brand, String crop, Double price) {
this.brand = brand;
this.crop = crop;
this.price = price;
}
3.p命名空间配置bean
<!--使用p命名空间的语法配置bean 本质上还是set方法配置-->
<bean id="car2" class="dao.Car"
p:brand="福特" p:crop="长安" p:price="300000" p:speed="260" >
</bean>
4.字面量,可以在赋值的时候如果要赋单引号‘ 或者双引号 “时使用
<!-- 字面量测试-->
<!-- <![CDATA[任意字符]]-->
<bean id="book" class="dao.Book">
<property name="bookId" value="2010"></property>
<property name="bookName" >
<value><![CDATA[& ' "]]></value>
</property>
</bean>
5.引用其它bean(使用ref) 只能是ioc容器里的bean,以及给级联属性赋值
<bean id="person1" class="dao.Person1">
<property name="id" value="2010"></property>
<property name="name" value="我最帅"></property>
<property name="car" ref="car1"></property>
<!-- 给级联属性赋值-->
<property name="car.speed" value="200"></property>
</bean>
6.内部bean
<!-- 测试内部bean -->
<bean id="person2" class="dao.Person1">
<property name="id" value="202"></property>
<property name="name" value="我"></property>
<property name="car">
<!-- 内部bean不需要id-->
<bean class="dao.Car">
<property name="brand" value="Mini"></property>
<property name="crop" value="宝马"></property>
<property name="price" value="200000"></property>
<property name="speed" value="200"></property>
</bean>
</property>
</bean>
7.当类对象的类属性 是list 或者 map类型时
<!-- List集合-->
<bean id="personList" class="dao.PersonList">
<property name="name" value="Tom"></property>
<property name="cars" ref="listBean">
<!-- <list>-->
<!-- <ref bean="car"/>-->
<!-- <ref bean="car1"/>-->
<!-- <ref bean="car2"/>-->
<!-- </list>-->
</property>
</bean>
<!--测试Map-->
<bean id="personMap" class="dao.PersonMap">
<property name="name" value="JOY"></property>
<property name="cars">
<map>
<entry key="AA" value-ref="car"></entry>
<entry key="BB" value-ref="car"></entry>
<entry key="CC" value-ref="car"></entry>
</map>
</property>
</bean>