`

使用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> 
分享到:
评论

相关推荐

    spring(一)–概念和历史/hellospring/IOC创建对象的方式/Spring配置/set注入/c命名和p命名空间注入/bean的作用域

    c命名空间允许使用标签直接传入构造函数参数,而p命名空间则用于setter注入,它允许使用属性名称而不是标签。这两种方式使配置更加简洁。 【Bean的作用域】 Spring中的Bean可以有多种作用域: 1. 单例(singleton...

    Spring 3 中文帮助文档..pdf

    - **4.4.2.6 使用p-命名空间的XML快捷方式**:介绍了p-命名空间的使用方法。 - **4.4.2.7 使用c-命名空间的XML快捷方式**:介绍了c-命名空间的使用方法。 - **4.4.2.8 复合属性名称**:解释了如何配置复合属性。 ...

    Spring总结.txt

    - **`p:`命名空间**:通过`p:`命名空间可以直接在`&lt;bean&gt;`标签内部定义属性值。 ```xml &lt;bean id="person5" class="com.phillips.spring.beans._01_collections.Person" p:name="Frank" p:age="10" p:cars-ref=...

    spring core官方文档.pdf

    - **XML快捷方式**:使用`p-`和`c-`命名空间简化属性设置。 - **复合属性名**:支持更复杂的属性路径表达式。 - **使用`depends-on`属性** - 通过`depends-on`属性控制Bean之间的依赖顺序。 - **延迟初始化Bean...

    spring-3.1.0中文版api帮助文档

    - **&lt;p/&gt;命名空间**:简化属性注入的配置方式。 - **抽象和子Bean**:讲解如何定义抽象Bean作为模板,以及如何创建具体的子Bean继承抽象Bean。 **2.12 基于注解配置DI容器** - **注解驱动**:使用注解替代XML配置...

    Spring2.0的配置2

    Spring 2.0引入了`p`和`c`命名空间,分别用于属性注入和构造函数注入。例如,`&lt;bean id="orderService" class="com.lizjason.spring.OrderService" p:companyName="lizjason" c:orderDAO-ref="orderDAO"/&gt;`,这样...

    spring_ioc.docx

    - **其他注入形式:** 常量注入、Bean 注入、数组注入、List 注入、Map 注入、Set 注入、null 注入、Properties 注入、p 命名空间注入和 c 命名空间注入。 **4. Bean 的作用域:** - **Singleton:** 默认作用域...

    Spring3.1 中文参考文档

    - **4.4.2.6 使用p-命名空间的XML快捷方式**:介绍了如何使用p-命名空间简化配置文件。 - **4.4.2.7 使用c-命名空间的XML快捷方式**:介绍了如何使用c-命名空间简化配置文件。 - **4.4.2.8 复合属性名称**:讨论...

    Spring框架(详细 一).md

    本篇博文适合零基础的同学:主要包括:spring介绍; Ioc 入门案例; Di 入门案例; 核心API介绍; 装配bean基于xml---实例化方式; bean种类;...属性注入--setter方法 p命名空间; sqel; 集合注入; 装配bean基于注解;

    tedu二阶段Spring全教程

    - **p命名空间**:使用p命名空间简化setter注入。 - **引入外部属性文件**:通过`context:property-placeholder`标签引入外部属性文件。 - **bean的作用域**:定义bean的生命周期,如singleton、prototype等。 - **...

    Spring3_权威开发指南

    - **&lt;p/&gt;命名空间**:提供了一种更简洁的方式来配置带有属性的Bean。 - **抽象和子Bean**:支持定义抽象Bean作为基类,便于复用配置。 - **基于注解(Annotation)方式配置DI容器**:介绍了如何使用注解来配置...

    三歪教你Spring2

    - **Spring的依赖注入**:学习如何通过构造函数、setter方法、自动装配等方式实现依赖注入,以及p命名空间的使用。 8. **AOP入门** - **CGLIB代理**:了解如何使用CGLIB库来生成动态代理,实现方法级别的拦截。 ...

    Spring6_pdf版讲义.pdf

    - **p命名空间注入**:使用`p:`前缀简化注入语法。 - **c命名空间注入**:使用`c:`前缀简化注入语法。 #### 2. XML的自动装配 - **根据名称自动装配**:使用`autowire="byName"`属性。 - **根据类型自动装配**:...

    SpringApplicationContext.xml配置的12个技巧.pdf

    7. **使用`p`和`c`命名空间**:引入`p`(properties)和`c`(constructor-args)命名空间,进一步简化bean的属性配置,如`&lt;bean id="..." p:prop1="value1" c:arg0="value2"/&gt;`。 8. **外部化配置**:将敏感信息或...

    mybatis plus.txt

    - `xmlns:p="http://www.springframework.org/schema/p"`:Spring的p命名空间,用于简化属性值的设置。 - `xmlns:aop="http://www.springframework.org/schema/aop"`:Spring AOP命名空间,用于配置切面编程。 - ...

    JSP Spring配置文件中传值的实例详解

    此外,Spring还提供了强大的`&lt;util&gt;`命名空间,包括`&lt;list&gt;`、`&lt;map&gt;`、`&lt;set&gt;`等类型,这些可以用于初始化集合类型的属性,使得集合类型的依赖注入更加便捷。 Spring框架之所以强大和受欢迎,原因之一就是它提供了...

    Spring 3.x中三种Bean配置方式比较详解

    可以通过`&lt;property&gt;`元素或p命名空间注入依赖,`init-method`和`destroy-method`属性定义初始化和销毁方法,`scope`属性设置Bean的作用域,如单例(singleton)或原型(prototype),`lazy-init`属性决定Bean是否...

Global site tag (gtag.js) - Google Analytics