1. 程式人生 > >深入解讀Spring Framework IoC容器(第四彈:p名稱空間和c名稱空間)

深入解讀Spring Framework IoC容器(第四彈:p名稱空間和c名稱空間)

原文

p名稱空間

使用p名稱空間可以用bean 元素的屬性代替<property/>元素。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd"
>
<!-- 標準XML格式 --> <bean name="john-classic" class="com.example.Person"> <property name="name" value="John Doe"/> <property name="spouse" ref="jane"/> </bean> <!-- p名稱空間格式 --> <bean name="john-modern" class="com.example.Person"
p:name="John Doe" p:spouse-ref="jane"/>
</beans>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

c名稱空間

使用c名稱空間可以用內聯的構造引數代替巢狀的constructor-arg元素。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="bar" class="x.y.Bar"/> <bean id="baz" class="x.y.Baz"/> <!-- 標準XML格式 --> <bean id="foo" class="x.y.Foo"> <constructor-arg name="bar" ref="bar"/> <constructor-arg name="baz" ref="baz"/> <constructor-arg name="email" value="[email protected]"/> </bean> <!-- c名稱空間格式 --> <bean id="foo" class="x.y.Foo" c:bar-ref="bar" c:baz-ref="baz" c:email="[email protected]"/> <!-- 還可以使用c名稱空間的引數索引格式 --> <bean id="foo" class="x.y.Foo" c:_0-ref="bar" c:_1-ref="baz" c:_2="[email protected]"/> </beans>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

雖然p名稱空間和c名稱空間都可以簡化XML配置,但是在實際開發中還是建議使用標準XML格式。