`

使用Spring 的命名空间p 装配属性

 
阅读更多

使用<property> 元素为Bean 的属性装配值和引用并不太复杂。尽管如此,Spring 的命名空间p 提供了另一种Bean 属性的装配方式,该方式不需要配置如此多的尖括号。

命名空间p 的schema URI 为http://www.springframework.org/schema/p。如果你想使用命名空间p,只需要在Spring 的XML 配置中增加如下一段声明:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <beans xmlns="http://www.springframework.org/schema/beans" 
  3. xmlns:p="http://www.springframework.org/schema/p" 
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

通过此声明,我们现在可以使用p: 作为<bean> 元素所有属性的前缀来装配Bean 的属性。为了示范,我们重新声明了kenny Bean 的配置:

<bean id="sqlSessionFactory" 
class="org.mybatis.spring.SqlSessionFactoryBean"
   p:dataSource-ref="dataSource" 
   p:configLocation="classpath:conf/mybatis-config.xml"
   p:mapperLocations="classpath:mapper/*.xml" />

p:configLocation 属性的值被设置为“”中的值。同样,p:dataSource-ref 属性的值被设置为“dataSource”,将使用一个ID 为dataSource的Bean 引用来装配dataSource-ref属性。-ref 后缀作为一个标识来告知Spring 应该装配一个引用而不是字面值。

选择<property> 还是命名空间p 取决于你,它们是等价的。命名空间p 的最主要优点是更简洁。在固定宽度的纸张上编写样例时,选择命名空间相对更合适。因此,在本书中你可能看到我不时的使用命名空间p,特别是水平页面空间比较紧凑时。

若不使用P命名空间的定义方式,使用<property>,对应的定义应该是:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" /> 
        <!-- 文件映射器,指定类文件 -->
        <property name="configLocation" value="classpath:conf/mybatis-config.xml"/>  
        <!-- 自动扫描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>  
    </bean> 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics