spring p命名空间 c命名空间

44 篇文章 0 订阅
37 篇文章 0 订阅
本文详细介绍了Spring中P和C命名空间的使用,包括通过P命名空间直接注入属性值,以及C命名空间利用构造器注入。同时,讨论了Bean的单例(singleton)和原型(prototype)两种作用域,展示了不同作用域下对象的创建和管理。在测试类中,展示了如何从配置文件中获取并打印Bean实例。
摘要由CSDN通过智能技术生成

1.  P命名空间   对普通属性直接   p:变量名=值       

2.C命名空间    对象有参构造的注入,等同于 构造器  construct-args==c

用法  c:有参变量名1  c:有参变量名2  。。。。。  

scope="singleton   单列模式
prototype 原型模式   相对单列模式就比较耗资源 singleton  单列模式  两者对象是一样
用hashcode就可以判断出

3.引用类

package com.yyf.pojo;

public class User {
    private String name;
    private int age;

    public User() {
    }

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

4.spring配置文件

<?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:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

<!--&lt;!&ndash; p命名空间 可以直接注入属性的值,p==property&ndash;&gt;           这两种属于扩展方式注入     -->
 <bean id="user" class="com.yyf.pojo.User" p:age="18" p:name="杨小法"/>

<!-- c命名空间 可以通过构造器construct-args==c-->
 <bean id="user1" class="com.yyf.pojo.User" c:name="狂神" c:age="1" scope="singleton"/>
<!-- <bean id="user1" class="com.yyf.pojo.User" c:name="狂神" c:age="1" scope="prototype"/>    prototype 原型模式
                     此时user 和  user1 两者就是不同的对象,相对单列模式就比较耗资源
                     singleton  单列模式  两者对象是一样
                     利用hashcode就可以判断出-->
</beans>









5.测试类

    @Test
    public void Test(){
     ApplicationContext context = new ClassPathXmlApplicationContext ("userbeans.xml");
        User user = (User) context.getBean ("user1");
        System.out.println (user);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值