有关Spring的拓展
一、p命名空间注入
改进原码
之前我们为bean进行依赖注入时,使用的是
<bean id="a4Paper" class="cn.printer.iface.TextPaper">
<property name="charPerLine" value="10"/>
<property name="linePerPage" value="8"/>
</bean>
这种方式,但是spring为我们提供了一种更为简便的方式。如下
<bean id="a3Paper" class="cn.printer.iface.TextPaper" p:charPerLine="11" p:linePerPage="10"/>
那么它是如何实现的呢?
实现方式
xmlns:p="http://www.springframework.org/schema/p"
二种使用途径
<bean id="a3Paper" class="cn.printer.iface.TextPaper" p:charPerLine="11" p:linePerPage="10"/>
<bean id="printer2" class="cn.printer.iface.Printer" p:ink-ref="colorInk" p:paper-ref="a3Paper"/>
注:这里ref是该容器中声明的Bean的id值
二、注入不同数据类型
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ">
<bean id="allCollectionType" class="cn.printer.setting.AllCollectionType">
<!--方式1-->
<!--<property name="list">
<list>
<value>1</value>
<value>2</value>
<value>3</value>
</list>
</property>-->
<!--方式二-->
<property name="list" value="1,2,3"/>
<property name="array">
<array>
<value>1</value>
<value>2</value>
<value>3</value>
</array>
</property>
<property name="map">
<map>
<entry>
<key>
<value>
foot
</value>
</key>
<value>足球</value>
</entry>
<entry>
<key>
<value>
basket
</value>
</key>
<value>篮球球</value>
</entry>
</map>
</property>
<property name="set">
<set>
<value>篮球_set</value>
<value>足球_set</value>
<value>乒乓球_set</value>
</set>
</property>
<property name="props">
<props>
<prop key="foot4">足球</prop>
<prop key="basket4">篮球</prop>
<prop key="pp4">乒乓球</prop>
</props>
</property>
</bean>
<!--方式三-->
<bean id="allCollectionType2" class="cn.printer.setting.AllCollectionType" p:list="1,2,3"/>
</beans>
注意:以上三种方法写一种即可
|