Spring中的p标签

时间:2022-11-02 09:01:51

1.Spring P标签

Spring的p标签是基于XML Schema的配置方式,目的是为了简化配置方式。
给Spring XML配置文件”减肥”的一个选择就是使用p名称空间,从 2.0开始,Spring支持使用名称空间的可扩展配置格式。这些名称空间都是基于一种XML Schema定义。

2.P命名空间配置

在Spring的配置XML文件头部添加xmlns:p=”http://www.springframework.org/schema/p”即可使用。

3.应用实例

例如:
类Person

public class Person
{

private int age;
private Job job;
public void setAge(int age)
{
this.age=age;
}
public void setJob(Job job)
{
this.job=job;
}
其余代码省略
......
}

3.1 原本XML的bean配置

<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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"
>

<bean id="job" class="com.mySpring.Job">
<property name="jobname" value="JavaDeveloper"/>
</bean>
<bean id="person" class="com.mySpring.Person">
<property name="age" value="24"/>
<property name="job" ref="job"/>
</bean>
</beans>

3.2 使用P标签的配置

<?xml version="1.0" encoding="GBK"?>
<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-3.0.xsd"
>

<bean id="job" class="com.mySpring.Job" p:jobname="JavaDeveloper"/>
<bean id="person" class="com.myclass.Person" p:age="24" p:job-ref="job"/>
</beans>

job之后添加”-ref”后缀表示是对另外一个bean的引用。

4. P标签知识点:

从上面的bean定义中,我们采用p名称空间的方式包含了一个叫age的属性,而Spring会知道我们的bean包含了一个属性(property)定义。我们前面说了,p名称空间是不需要schema定义的,因此属性(attribute)的名字就是你bean的property的名字。
上面的例子不仅使用p名称空间包含了一个属性(property)值,而且使用了一个特殊的格式声明了一个属性引用。在第一个bean定义中使用了来建立bean person到bean job的引用,而第二个bean定义则采用p:job-ref=”job”属性(attribute)的方式达到了同样的目的。在这个例子中,”job”是属性(property)名,而”-ref“则用来说明该属性不是一个具体的值而是对另外一个bean的引用。