spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间

Spring 6【p命名空间和c命名空间】(五)-全面详解(学习总结---从入门到深化) 阅读详情

目录

一、p命名空间注入

二、c命名空间

三、util命名空间,主要是实现配置的复用


本篇文章主要是介绍spring的依赖注入:p命名空间注入、c命名空间注入、util命名空间。详细介绍了具体的配置、实现方式以及注意事项。

一、p命名空间注入

什么是p命名空间注入?其实是一种基于set方法的注入方式(主要是用于简化set注入)

public class PNameBeanSet {

    private String name;

    private String value;

    private String age;

    public String getName() {
        return name;
    }

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

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getAge() {
        return age;
    }

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

配置:

第一步:在spring的配置文件头部添加p命名空间

xmlns:p=“http://www.springframework.org/schema/p”

第二步:使用 p:属性名 = “属性值”

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

    <bean id="PNameBeanSetBean" class="com.linctSpring6.nameBean.PNameBeanSet" p:name="小花" p:value="很漂亮" p:age="18"></bean>

</beans>

二、c命名空间

c命名空间注入办法是基于构造方法注入的,主要是简化构造方法注入

public class CNameBeanSet {

    private String name;

    private String value;

    private String age;

    public CNameBeanSet(String name, String value, String age) {
        this.name = name;
        this.value = value;
        this.age = age;
    }

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

配置:

第一步:在spring的配置文件头部添加c命名空间

xmlns:c=“http://www.springframework.org/schema/c”

第二步:配置bean的注入

方法一:使用 c:_0= “属性值” 下标方式注入bean

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


    <bean id="CNameBeanSetBean" class="com.linctSpring6.nameBean.CNameBeanSet" c:_0="小花" c:_1="很漂亮" c:_2="18"></bean>



</beans>

方法二:或者使用 c:name = “属性值” 参数名方式

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

    <bean id="CNameBeanSetBean" class="com.linctSpring6.nameBean.CNameBeanSet" c:name="小花" c:value="很漂亮" c:age="18"></bean>




</beans>

三、util命名空间,主要是实现配置的复用

例如当前我们有2个类,需要注入同样一份数据。我们就可以通过util命名空间的注入的方式,注入同一份配置文件的数据。

用法:把我们需要的数据源信息通过注入的方式注入到集合(properties对象)当中

我们定义2个类,myDataSource1 和 myDataSource2

public class MyDataSource1 {

    private Properties properties;

    public void setProperties(Properties properties) {
        this.properties = properties;
    }
    
}

public class MyDataSource2 {

    private Properties properties;

    public void setProperties(Properties properties) {
        this.properties = properties;
    }
}

配置文件:实现properties对象数据的复用

第一步:在spring的配置文件头部添加c命名空间

xmlns:util=“http://www.springframework.org/schema/util”

以及xml规范约束文件

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd

第二步:

配置properties数据源

实例化bean,并在bean中注入配置的properties数据源

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


    <util:properties id="prpo">
        <prop key="driver">com.mysql.cj.jdbc.Driver</prop>
        <prop key="url">jdbc:mysql://localhost:3306/spring6</prop>
        <prop key="userName">root</prop>
        <prop key="password">123</prop>
    </util:properties>

    <!--数据配置1-->
    <bean id="MyDataSource1Bean" class="com.linctSpring6.nameBean.MyDataSource1" >
        <property name="properties" ref="prop"></property>
    </bean>

    <!--数据配置2-->
    <bean id="MyDataSource2Bean" class="com.linctSpring6.nameBean.MyDataSource2" >
        <property name="properties" ref="prop"></property>
    </bean>


</beans>

util命名空间注入主要是针对于集合,例如这些集合的数据信息需要在好几个类中引入,我们就可以使用util命名空间 。这样的话,就只需要写一遍properties数据源信息,让bean直接引用就可以了

注意:util命名空间注入方式还是基于set方法注入的!

总结:这些命名空间都是为了简化bean的注入,让我们代码更加简洁,编程效率更加高效。

以上就是我对spring根据三种命名空间注入(p、c、util)的理解啦,希望能帮到大家,有问题的地方欢迎大家一起讨论!

后续会不断更新作品,欢迎大家一起讨论学习。

【Spring笔记03】Spring依赖注入各种数据类型 这篇文章,详细介绍一下Spring框架中的依赖注入,详细介绍setter方法和constructor构造方法的依赖注入,以及如何注入各种数据类型,包含:注入基本数据类型、数组、集合、Map映射、Property属性、注入空字符串、注入null值、注入特殊字符等内容。 目录 一、依赖注入 1.1、setter方法注入 1.2、构造方法注入 ... 阅读详情

相关推荐

Keil AC6编译器独立安装与配置指南:不升级Keil MDK也能用上新工具链

本文详细介绍了如何在不升级Keil MDK的情况下独立安装和配置Arm Compiler 6(AC6),帮助嵌入式开发者充分利用AC6的编译速度、代码密度和现代语言支持优势。通过零侵入式解决方案,开发者可以在现有环境中灵活切换编译器版本,提升开发效率。

weixin_30872157的博客 552

spring——Spring Bean属性注入——短命名空间注入——p 命名空间注入(setter注入)...

短命名空间注入 我们在通过构造函数或 setter 方法进行属性注入时,通常是在 <bean> 元素中嵌套 <property> 和 <constructor-arg> 元素来实现的。这种方式虽然结构清晰,但书写较繁琐。Spring 框架提供了 2 种短命名空间,可以简化 Spring 的 XML 配置,如下表。 短命名空间简化的 XML 配置说明 p ...

小白龙白龙马的博客 1262

高效IT运维报告编写指南:实战经验与模板分享

本文提供了一份全面的IT运维报告编写指南,涵盖实战经验与实用模板分享。文章详细解析了高效运维报告的核心要素,包括结构设计、数据收集自动化和可视化技巧,并提供了月度报告和故障分析报告模板。通过自动化工具和写作技巧,帮助团队提升报告质量,支持决策和问题追踪。

u5v6w7的博客 925

spring中的c命名空间和p命名空间是什么?

p命名空间 spring中的p命名空间就是为了更加方便的使用set方法注入属性内容 举例说明: User实体类 public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; }

技术积累,技术分享 2388

Python入门基础教程(非常详细)

Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python类库(模块)极其丰富,这使得Python几乎无所不能,不管是传统的Web开发、PC软件开发、Linux运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python都能胜任。这套Python基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋友出于兴趣学习Python,请引导他阅读本教程的前半部分,这是基础,可以降低学习成本;...

Yuki1127918的博客 34万+

西门子触摸屏教程wincc flexible2008 sp5 Smart V3 V4中文版软件

西门子触摸屏教程wincc flexible2008 sp5 Smart V3 V4中文版软件

liang007dudu的博客 1万+

Spring 的 P 命名空间

Spring 的 P 命名空间 什么是 P 命名空间? P 命名空间 不是新的东西,它是对 IoC 和 DI 的简化。使用 p 命名空间 可以更加方便地完成 bean 的配置以及 bean 之间的依赖注入。 如何使用 p 命名空间? 首先必须确保 xml 文件中引入了 p 命名空间。 <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans"

qq_44960253的博客 449

logisim中,如何设计一个位于十字路口的交通信号灯控制系统?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1341

Spring的p命名空间

p命名空间是对IoC/DI的简化操作,使用p命名空间可以更加方便的完成bean的配置以及bean之间的依赖注入。 <?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.spri

m0_45045268的博客 644

PCL 法线定向【2025最新版】

几种法线定向方法的PCL代码实现。

点云侠的博客 2801

ICM20948 DMP代码详解(69)

ICM20948 DMP代码详解(69)

phmatthaus的专栏 611

p命名空间注入原理详解

p命名空间:转换为,在Bean实例化后通过反射调用setter方法注入c命名空间:转换为,在Bean实例化时通过构造器参数注入util命名空间:创建对应的FactoryBean,在依赖查找时生成集合实例。

weixin_37838725的博客 386

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2093

依赖注入的方法

props标签包裹一组数据,数组每个元素的赋值用prop标签,属性key为Properties 的键,prop标签包裹的内容为Properties的值。map标签包裹一组数据,数组每个元素的赋值用entry标签,属性key为Map的键,属性value为Map的值。如果是一个存在的url,那就没问题。set注入,基于set方法实现的,底层会通过反射机制调用属性对应的set方法然后给属性赋值。上面的set注入方式就是注入的外部Bean,即bean定义到外面,在property标签中使用ref属性进行注入。

JerryLeesir的博客 981

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Spring】Spring 对 Ioc 的实现

Spring 对于 Ioc 的实现(近三万字的文章)

秋玄的博客 2164

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

set注入之专题(spring)

注入简单类型是通过标签的value属性来完成的,Spring 会自动进行类型转换。你可以注入原始类型(如intboolean)、包装类(如IntegerBoolean)、字符串和枚举类型。List集合:使用标签注入有序且可重复的集合,如names属性。Set集合:使用标签注入无序且不可重复的集合,如address属性。Map集合:使用标签注入键值对集合,如phones属性,可以通过key和value来设置简单类型的键值对,或通过key-ref和。

gege_0606的博客 898

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Spring6】| Spring对IoC的实现(核心重点)

【Spring6】| Spring对IoC的实现(核心重点)

m0_61933976的博客 3142

Spring | IOC之bean基于XML的注入(装配)

Spring | IOC之bean基于XML的注入(装配)1 依赖关系的理解2 bean间的依赖3 bean的依赖注入3.1 构造器注入3.1.1 实例1:含参构造器注入3.1.2 实例2:c-命名空间3.1.3 实例3:注入字符串和整形3.1.4 实例4:注入集合3.2 setter方法注入3.2.1 实例5:setter注入3.2.2 实例6:p-命名空间3.2.3 实例7:setter注入字...

星空下的程序猿 579

[5-01-01].第08节:依赖注入 - 其他注入方式

1.对于c命名空间是简化构造方法注入的。使用c命名空间的两个前提条件:第二:需要提供构造方法通过测试得知,通过构造方法注入的时候可以通过下标可以通过参数名也可以不指定下标和参数名,可以类型自动推断Spring在装配方面做的还是比较健壮的1.我们都知道编写数据源的时候是需要连接数据库的信息的,例如:driver url username password等信息。这些信息可以单独写到一个属性配置文件中吗,这样用户修改起来会更加的方便。当然可以。

F-T-er 635
上一篇: Springboot中SLF4J详解
下一篇: Tomcat详细讲解(巨详细!!!)
普通网友
博客等级 码龄4年 2202粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值