Spring基础学习2——spring中xml注入
基础属性注入
在有构造函数的时候必须要通过构造函数注入
// 通过构造函数注入
<bean id="car1bean" class="com.hhh.spring.demo.Car1Bean" >
<constructor-arg index="0" value="car1Name"/>
<constructor-arg index="1" value="car1Type"/>
</bean>
// 通过get、set方法注入
<bean id="car2bean" class="com.hhh.spring.demo.Car2Bean" >
<property name="name" value="car2Name"/>
<property name="type" value="car2Type"/>
</bean>
对象类型属性注入
<bean id="car2bean" class="com.hhh.spring.demo.Car2Bean" >
<property name="name" value="car2Name"/>
<property name="type" value="car2Type"/>
<property name="mcar" ref="car1bean"/> // 通过ref进行对象的引入
</bean>
P名称空间
// 引入p名称控件
xmlns:p="http://www.springframework.org/schema/p"
// 使用p名称控件,可以取代下面的代码
<bean id="car2bean" class="com.hhh.spring.demo.Car2Bean" p:name="car2Name" p:type="car2Type" p:mcar-ref="car1bean" ></bean>
<!--<bean id="car2bean" class="com.hhh.spring.demo.Car2Bean" >-->
<!--<property name="name" value="car2Name"/>-->
<!--<property name="type" value="car2Type"/>-->
<!--<property name="mcar" ref="car1bean"/>-->
<!--</bean>-->
spel注入
之前的注入都是写死的值,通过spel注入,可以在里面写表达式
<bean id="car2bean" class="com.hhh.spring.demo.Car2Bean" >
<property name="name" value="#{1+2}"/>
<property name="type" value="#{3++}"/>
<property name="mcar" ref="#{car1bean}"/>
</bean>
复杂属性的注入
// 注入数组
<property name="array">
<list>
<value>array1</value>
<value>array2</value>
<value>array3</value>
<value>array4</value>
</list>
</property>
// 注入list
<property name="listData">
<list>
<value>list1</value>
<value>list2</value>
<value>list3</value>
<value>list4</value>
</list>
</property>
// 注入set
<property name="setData">
<set>
<value>value1</value>
<value>value2</value>
<value>value3</value>
<value>value4</value>
</set>
</property>
// 注入map
<property name="mapData">
<map>
<entry key="key1" value="map1"/>
<entry key="key2" value="map2"/>
<entry key="key3" value="map3"/>
</map>
</property>