Spring的p标签

看Spring in action的时候看过p标签,可惜这东西不用就忘。

p标签是为了简化setter的注入而引入的

用法:

p:属性 = "{值}"
p:属性-ref = "{引用bean的id}"

示例Bean:

package o3.bean;

import java.util.Date;

public class Person {
    private String name;
    private int age;
    private Date date;

    public String getName(){
        return name;
    }

    public void setName(String name){
        this.name = name;
    }

    public int getAge(){
        return age;
    }

    public void setAge(int age){
        this.age = age;
    }

    public Date getDate(){
        return date;
    }

    public void setDate(Date date){
        this.date = date;
    }

    @Override public String toString(){
        return "Person{" +
               "name=‘" + name + ‘\‘‘ +
               ", age=" + age +
               ", date=" + date +
               ‘}‘;
    }
}

XML配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       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
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="o3.bean"/>

    <bean id="person" class="o3.bean.Person">
        <property name="name" value="Kute"/>
        <property name="age" value="22"/>
        <property name="date" ref="date"/>
    </bean>
    <bean id="date" class="java.util.Date" autowire="constructor"/>

    <bean id="person2" class="o3.bean.Person" p:name="Bill" p:age="23" p:date-ref="date" />
</beans>

测试代码:

package o3;

import o3.bean.Person;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class P {
    private ApplicationContext ac;
    @Before
    public void setUp(){
        ac=new ClassPathXmlApplicationContext("classpath:applicationContextPerson.xml");
    }

    @Test
    public void run1(){
        Person person = ac.getBean("person", Person.class);
        Person person2 = ac.getBean("person2", Person.class);
        System.out.println(person);
        System.out.println(person2);
    }

}

测试结果:

Person{name=‘Kute‘, age=22, date=Fri May 27 10:13:27 CST 2016}
Person{name=‘Bill‘, age=23, date=Fri May 27 10:13:27 CST 2016}
时间: 2024-10-15 17:30:52

Spring的p标签的相关文章

spring security的标签库

spring security的标签库 应用标签库:<%@ taglib prefix='security ' uri='http://www.springframework.org/security /tags' %> <security :authorize>是一个流程控制标签,能够在满足特定安全需求的条件下显示它的内容体.它有三个互斥的参数: ifAllGranted--是一个由逗号分隔的权限列表,用户必须拥有所有列出的权限时显示: ifAnyGranted--是一个由逗号分

基于Spring开发——自定义标签及其解析

1. XML Schema 1.1 最简单的标签 一个最简单的标签,形式如: <bf:head-routing key="1" value="1" to="test2"/> 该标签只包含了若干属性,我们就在xsd文件中这么定义 <!-- 声明一个标签,名字为head-routing,他的类型为headRouting--> <xsd:element name="head-routing" type=

CXF spring配置引用标签

<!--java webservice CXF spring配置引用标签--> <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" xmlns:jaxws=&

spring:使用&lt;prop&gt;标签为Java持久属性集注入值

spring:使用<prop>标签为Java持久属性集注入值 使用 spring 提供的<prop>为Java持久属性集注入值,也就是向 java.util.Properties 对象中注入值. <props> 是简化了的 <map> ,该元素对应配置类型为 java.util.Properties 的对象依赖. 因为Properties 只能指定 String 类型的键和值,所以 <props> 的配置简化很多,只有固定的格式. 1.创建 Te

Spring表单标签

虽然我们可以使用HTML原生的form表单标签来轻松的写出一个表单,其实我一直都是这样做的,但是使用Spring表单标签可以更方便我们完成例如:验证失败后表单数据的回填功能(虽然你可以使用EL+JSTL来实现),但是使用spring表单标签更为方便. 如同使用JSTL一样,我们需要先在JSP页面中使用taglib指令导入: <%@taglib prefix="form" uri="http://www.springframeork.org/tags/form"

Spring——使用自定义标签

文章内容参考了<Spring源码深度解析>一书.自己照着书中内容做了一遍,不懂的地方以及采坑的地方会在文中记录. 推荐一篇post,关于Spring配置文件的命名空间: https://www.cnblogs.com/gonjan-blog/p/6637106.html 我们暂时只是知道使用Spring的常规标签,加个bean,事务,Aop等等.随着满足业务的需求,同时降低程序员的工作量,我们有时需要自己定制一些标签.话补多少,下面进入主题. 自定义标签的使用 扩展Spring自定义标签大致需

Spring &lt;context:component-scan&gt;标签属性 use-default-filters 以及子标签 include-filter使用说明

Spring <context:component-scan>标签作用有很多,最基本就是 开启包扫描,可以使用@Component.@Service.@Component等注解: 今天要作为发现,记录该标签的属性 use-default-filters 以及子标签 include-filter使用方式 : use-default-filters 默认true,默认会扫描@Component.@Controller.@Service.@Repository注解,因为这些注解都可以说是@Compo

Spring的beans标签下可以有其他标签

以前有对xsd小做研究,有个小困惑,就是我们定义的元素只能使用定义的哪一些标签,比如<beans>下面就只能有自定义的哪一些,那为什么在引入<context>.<aop>等命名空间之后就能使用上诉2个标签呢?之前一直嫌弃spring的xsd太长,第一眼看上去比较混乱,今天鼓起勇气看了一下<beans>的xsd文件,看了之后发现其实还是非常简单的,所使用的无外乎也就是xsd那些东西. 那么,<beans>标签下对元素的定义中有一段是这样子的: &l

Spring的自定义标签

当Spring拿到一个元素时首先要做的是根据命名空间进行解析,如果是默认的命名空间,则使用parseDefaultElement方法进行元素解析,否则使用parseCustom Element方法进行解析. protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) { if (delegate.isDefaultNamespace(root)) { NodeList nl =