使用Spring的命名空间p装配属性-摘自《Spring实战(第3版)》

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

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

<?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-3.0.xsd"> 

(以上链接为手打可能有误,拷贝时请检查)

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

为了示范,我使用property声明了一个bean和使用命名空间p声明一个bean来比较一下。

property:
<bean id="kenny" class="com.springinaction.springidol.Instrumentalist">
    <property name="song" value="Jingle Bells"/>
    <property name="instrument" ref="piano"/>
</bean>
p命名空间:
<bean id="kenny" class="com.springinaction.springidol.Instrumentalist"
    p:song="Jingle Bells"
    p:instrument-ref="piano"/>

p:song属性的值被设置为“Jingle Bells”,将使用该值装配song属性。同样,p:instrument-ref属性的值被设置为“piano”,将使用一个id为piano的bean引用来装配instrument属性,-ref后缀作为一个标识来告诉spring应该装配一个引用而不是字面值。

选择<property>还是命名空间p取决于你,它们是等价的。命名空间p的最主要优点是更简洁。

时间: 2024-10-19 12:16:08

使用Spring的命名空间p装配属性-摘自《Spring实战(第3版)》的相关文章

spring命名空间p装配属性

使用<property>元素为bean的属性装备值和引用并不太复杂.尽管如此,spring的命名空间p提供了另一种bean属性的装配方式. 命名空间p的schema url是:http://www.springframework.org/schema/p 直接看例子(还是角色跟用户的model): public class Roles { private int id; private String roleName; private Users users; //省略set get方法 //

Spring bean的自动装配属性

bean的自动装配属性能简化xml文件配置. bean 的自动装配属性分为四种: 1.byName 2.byTyoe 3.constructor 4. autodetect byName: 它查找配置文件中的的bean的id 或者name 和本bean中的成员属性名相同的bean 自动装配 所以不用再给本bean添加peoperty标签 例:有两个类 public Class  Person{ } public Class Customer{ private Person p; public s

Spring学习笔记--注入Bean属性

这里通过一个MoonlightPoet类来演示了注入Bean属性property的效果. package com.moonlit.myspring; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.springframework.context.ApplicationContext; import org.springframework.context.support.Clas

《Spring实战 第三版》二

第二章 装配Bean 在Spring中,对象无需自己负责查找或创建与其相关联的其他对象 相反,容器负责把需要相互协作的对象引用赋予各个对象 创建应用对象之间协作关系的行为通常称为装配,这也是依赖注入的本质 声明Bean Spring是一个基于容器的框架 但是如果没有对Spring进行配置,那它就是一个空容器,不起任何作用 所以我们需要配置Spring来告诉它需要加载哪些Bean和如任何装配这些Bean 这样才能确保它们能够彼此协作 从Spring3.0开始,Spring容器提供了两种配置Bean

Spring注解 - 生命周期、属性赋值、自动装配

一.Bean的生命周期 流程 Bean创建 -- 初始化 -- 销毁 创建: 单实例:在容器启动时创建对象 多实例:每次调用时创建对象 初始化: 都是在对象创建完成后,调用初始化方法 销毁: 单实例:容器关闭时,调用销毁方法 多实例:容器不会管理这个bean,只能手动调用销毁方法 实现方式 在 @Bean 注解上指定初始化(initMethod).销毁方法(destroyMethod) @Bean(initMethod = "init", destroyMethod = "d

Spring之IOC&amp;DI/装配Bean(一)

简介 今天学习Spring的第一天,无非也就是入门基础知识.主要了解IOC和DI部分,要熟练掌握哦~ Spring简介 1. Spring介绍 Spring是一个非常活跃的开源框架:它是一个基于Core来构架多层JavaEE系统的框架,它的主要目地是简化企业开发. Spring以一种非侵入式的方式来管理你的代码,Spring提倡"最少侵入",这也就意味着你可以适当的时候安装或卸载Spring 2. Spring框架的优势 ?方便解耦,简化开发 ?Spring就是一个大工厂,可以将所有对

Spring笔记2——Spring中Bean的装配

1.引言 Spring中,对象无需自己负责查找或创建与其关联的其他对象,而是由容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间的协作关系的行为通常称为装配(Wiring),这也是依赖注入的本质. 2.声明Bean 配置Bean的方式主要有两种:基于XML文件的配置方式和基于Java注解的配置方式.传统的基于XML文件的配置方式在声明Bean时,Spring配置文件的根元素来源于Spring beans命名空间所定义的<beans>元素.除了beans命名空间外,Java自带了多种

Spring 之Bean的装配

Spring Bean的装配分为3中: 1.隐式发现和自动装配 @Component:将一个Java类声明为Bean(组件类),等待Spring扫描发现. @ComponentScan:启用组件扫描将带有@Component的类实例化为Bean,一般用在配置类上,可指定扫描基础包,默认与配置类相同的包. @Configuration:声明一个Java类是配置类,它与@Component作用相当,只是更为直观,一般@Bean与其连用. <context:component-scan base-pa

spring学习总结——高级装配学习三(Bean的作用域)

一.bean的作用域 在默认情况下,Spring应用上下文中所有bean都是作为以单例(singleton)的形式创建的.也就是说,不管给定的一个bean被注入到其他bean多少次,每次所注入的都是同一个实例.如果你所使用的类是易变的(mutable),它们会保持一些状态,因此重用是不安全的.在这种情况下,将class声明为单例的bean就不是什么好主意了,因为对象会被污染,稍后重用的时候会出现意想不到的问题. 1.Spring定义了多种作用域,可以基于这些作用域创建bean,包括: 单例(Si