• spring之基于p命名c命名空间的注入



    前言

    P命名空间注入:
    目的:简化set方法注入
    使用p命名空间注入的前提条件包括两个:

    • 在XML头部信息中添加p命名空间的配置信息:xmlns:p=“http://www.springframeworl.org/schema/p”
    • p命名空间注入是基于setter方法的,所以需要对应的属性提供set方法

    c命名空间注入:
    目的:简化构造方法
    使用c命名空间注入的前提条件包括两个:

    • 在XML头部信息中添加p命名空间的配置信息:xmlns:c=“http://www.springframeworl.org/schema/c”
    • c命名空间注入是基于构造方法的,所以需要提供构造方法

    一、p命名空间

    1.1、编写一个普通的Java类

    public class Dog {
        //简单类型
        private String name;
        private int age;
        //非简单类型
        private Date birth;
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void setBirth(Date birth) {
            this.birth = birth;
        }
    
        @Override
        public String toString() {
            return "Dog{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    ", birth=" + birth +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    1.2、spring配置文件

    spring配置文件:spring-p.xml
    第一步:在spring的配置文件头部添加p命名空间,xmlns:p=“http://www.springframework.org/schema/p”
    第二步:使用 p:属性名

    
    <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.xsd">
    
    
        
        <bean id="dogBean" class="com.powernode.spring6.bean.Dog" p:name="小陈" p:age="3" p:birth-ref="birthBean">bean>
        
        <bean id="birthBean" class="java.util.Date">bean>
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    1.3、测试

    测试类:

        @Test
        public void testSpringP(){
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-p.xml");
            Dog dog = applicationContext.getBean("dogBean", Dog.class);
            System.out.println(dog);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1.4、运行结果

    在这里插入图片描述

    二、c命名空间

    2.1、编写一个普通的Java类

    public class People {
        private String name;
        private int age;
        private boolean sex;
    
        //c命名空间注入办法是基于构造方法的
        public People(String name, int age, boolean sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
    
        @Override
        public String toString() {
            return "People{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    ", sex=" + sex +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2.2、spring配置文件

    spring配置文件:spring-c.xml
    第一步:在spring的配置文件头部添加c命名空间,xmlns:c=“http://www.springframework.org/schema/c”
    第二步:使用 c:参数名方式
    也可以使用c:下标方式

    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:c="http://www.springframework.org/schema/c"
           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.xsd">
        
        <bean id="peopleBean" class="com.powernode.spring6.bean.People" c:_0="小花" c:_1="20" c:_2="true">bean>
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2.3、测试

    测试类:

        @Test
        public void testSpringC(){
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-c.xml");
            People people = applicationContext.getBean("peopleBean", People.class);
            System.out.println(people);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.4、运行结果

    在这里插入图片描述


    总结

    p命名空间本质上还是set注入,只不过p命名空间注入可以让spring配置变得更简单
    c命名空间是简化构造方法注入的

  • 相关阅读:
    Xilinx 7系列 FPGA硬件知识系列(八)——Xilinx FPGA的复位
    12 正太总体参数的假设检验
    LLM - 大语言模型(LLM) 的 评估体系
    火山引擎 ByteHouse:ClickHouse 如何保证海量数据一致性
    提高采购效率,采购管理的五大原则及实现方法
    CTFSHOW菜狗杯 web
    VMware Workstation Pro 16、CentOS7镜像 (Windows10)下载安装
    14:00面试,14:06就出来了,问的问题有点变态。。。
    ipad手写笔有必要买原装吗?第三方性价比高的手写笔推荐
    集成多元算法,打造高效字面文本相似度计算与匹配搜索解决方案,助力文本匹配冷启动[BM25、词向量、SimHash、Tfidf、SequenceMatcher]
  • 原文地址:https://blog.csdn.net/qq_42338744/article/details/127917728