Spring——Spring_XML实现DI

news2024/7/6 19:56:54

1.实现DI1

1.1DI给对象属性赋值

【1】通过set方法给对象属性赋值

<bean id="user2" class="org.example.User" >
        <property name="userId" value="1"></property>
        <property name="uname" value="漳卅"></property>
        <property name="password" value="abcdef"></property>
    </bean>

【2】通过有参构造方法给对象属性赋值

<bean id="user3" class="org.example.User" >
        <constructor-arg name="userId" value="1" ></constructor-arg>
        <constructor-arg name="uname" value="宿舍" ></constructor-arg>
        <constructor-arg name="password" value="asdads" ></constructor-arg>
    </bean>

【3】通过p名称空间和c名称空间实现DI

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


<bean id="user4" class="org.example.User"p:userId="5" p:uname="晓东" p:password="123456" ></bean>
<bean id="user6" class="org.example.User"c:userId="6" c:uname="1东" c:password="123456" ></bean>

2.实现DI2

2.1注入空值和特殊符号

3.实现DI3

3.1对象引用的方式

分为外部引用和内部引用,外部引用使用的多一些

<?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
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="date1" class="java.util.Date"></bean>
    <bean id="mouse" class="org.example.Mouse" >
        <property name="name" value="杰瑞"></property>
        <!--引用外部bean-->
        <property name="brith" ref="date1"></property>
    </bean>


    <bean id="cat" class="org.example.Cat">
    <property name="name" value="汤姆"></property>
        <!--引用内部bean-->
    <property name="mouse1">
        <bean class="org.example.Mouse">
            <property name="name" value="杰瑞"></property>
            <property name="brith" >
                <bean class="java.util.Date"></bean>
            </property>
        </bean>
    </property>
    </bean>
</beans>

4.实现DI4

4.1集合属性注入

<?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
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="student" class="org.example.Student">
        <!--数组属性注入-->
        <property name="books">
            <array>
                <value>JAVA</value>
                <value>Mysql</value>
                <value>Spring</value>
            </array>
        </property>
        <!--set集合注入-->
        <property name="bookset">
            <set>
                <value>JAVA</value>
                <value>Mysql</value>
                <value>Spring</value>
            </set>
        </property>
        <!--list集合注入-->
        <property name="bookList">
            <list>
                <value>JAVA</value>
                <value>Mysql</value>
                <value>Spring</value>
            </list>
        </property>
        <!--map集合注入-->
        <property name="bookmap">
            <map>
                <entry key="JAVA" value="马士兵"></entry>
                <entry key="Golang" value="马士兵"></entry>
                <entry key="JVM" value="马士兵"></entry>
            </map>
        </property>
        <!--list对象集合注入-->
        <property name="bookList2">
            <list>
                <bean id="b1" class="org.example.Book">
                    <property name="bname"  value="JAVA"></property>
                    <property name="author" value="马士兵"></property>
                </bean>
                <bean id="b2" class="org.example.Book">
                    <property name="bname"  value="Go"></property>
                    <property name="author" value="马士兵"></property>
                </bean>
                <bean id="b3" class="org.example.Book">
                    <property name="bname"  value="JVM"></property>
                    <property name="author" value="马士兵"></property>
                </bean>
                <!--<ref bean="b1"></ref>
                <ref bean="b2"></ref>
                <ref bean="b3"></ref>-->
            </list>
        </property>
    </bean>

    <!--<bean id="b1" class="org.example.Book">
        <property name="bname" value="wang"></property>
        <property name="author" value="xue"></property>
    </bean>
    <bean id="b2" class="org.example.Book">
        <property name="bname" value="hu"></property>
        <property name="author" value="guo"></property>
    </bean>-->
</beans>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555002.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能家居新选择,雷达感应器成品方案,人体存在感应控制照明联动

在现代社会&#xff0c;随着智能化技术的不断推进&#xff0c;人体存在感应控制照明已经成为了一项必备的技术手段。 ISE101T-5雷达感应器成品&#xff0c;作为一款拥有多种特点和优势的设备&#xff0c;不仅可以感应到室内的人体存在&#xff0c;还能够通过控制照明实现更为舒…

北京理工大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 计算机学院始建于1958年&#xff0c;是全国最早设立计算机专业的高校之一。2018年4月&#xff0c;计算机学院、软件学院、网络科学与技术研究院合并成立新的计算机学院。学院累计为国家培养各类人才15000余名。计算机科…

登录功能应该重点测试哪些方面,你都了解全面了么?

登录功能的测试是最常见也是最重要的&#xff0c;同时也是最容易被忽略的&#xff0c;关于登录功能的测试用例总结如下&#xff1a; 功能测试 输入已注册用户名和正确的密码&#xff0c;是否登录成功&#xff1b;输入已注册的用户名和错误的密码&#xff0c;是否登录失败&…

【OpenCV DNN】Flask 视频监控目标检测教程 02

欢迎关注『OpenCV DNN Youcans』系列&#xff0c;持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 01 【OpenCV DNN】Flask 视频监控目标检测教程 02 【OpenCV DNN】Flask 视频监控目标检测教程 02 3.1 从URL地址读取图片进行处理3.1.1 从指定的 url 地址读取图像3.1.2 …

C++学习之路-开始

引言 C在人们的眼中通常是“复杂”一词的代表&#xff0c;但其实C有严谨的体系结构&#xff0c;以C构建起来的工程不仅严谨并且执行速度非常快。计算机科学本就是一门工程学科&#xff0c;C就相当于是一种搭建房子的基础方法&#xff0c;学完C我们将得到一把强而有力武器来武装…

2023-5-22-C++异常处理机制学习

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

Go语言核心编程-函数、包和错误处理

第 6 章 函数、包和错误处理 6.1 为什么需要函数 6.1.1请大家完成这样一个需求: 输入两个数,再输入一个运算符(,-,*,/)&#xff0c;得到结果.。 6.1.2使用传统的方法解决 走代码 分析一下上面代码问题 上面的写法是可以完成功能, 但是代码冗余同时不利于代码维护函数可以解…

跟卖又被“抄家”了,亚马逊新手要怎么做?

今天网上看到又有一家跟卖的被砸了&#xff0c;图片大致是下面这样的&#xff08;网上找的图&#xff0c;跟我看到的图片类似&#xff09;。 图片下方还有几句话&#xff1a;“事已办完&#xff0c;跟卖的窝点被我端了&#xff01;” 然后整个群里是一片欢腾&#xff0c;各种“…

网络安全是一个好专业吗

前言 网络安全作为一个专业领域&#xff0c;在当今数字时代正变得越发重要和关键。无论是企业还是个人&#xff0c;面对着越来越频繁的网络威胁和攻击&#xff0c;网络安全领域的专业人员扮演着至关重要的角色。那么&#xff0c;从一个资深网安工程师的角度来看&#xff0c;网…

SpringBoot——Bean属性绑定

简单介绍&#xff1a; 之前我们介绍过我们如何在Bean中获取配置文件的方式&#xff0c;就是通过将类注册到Spring容器中&#xff0c;然后通过ConfigurationProperties()注解&#xff0c;这个注解有一个参数叫做prefix&#xff0c;参数的值就是我们在配置文件中配置的一组数据的…

成为移动测试高手!本文教你掌握移动APP测试的关键知识和技巧,提升测试水平,轻松获取高薪工作!(上)

目录 引言 首先搭建android-sdk环境 一.兼容性测试【原生APP】 1.WEB 2.APP 2.1操作系统 2.2分辨率 2.3不同厂家 2.4网络类型 (1)h5小程序类型&#xff1a; 如何测试APP在不同手机的情况 如何测试弱网络 &#xff08;2&#xff09;.小程序 二.功能测试点 (另外)…

备战2023年秋招,一套吃透全部技术栈.....

今天跟大家分享这份测试工程师全套面试攻略包含了软件测试基础 、MySQL基础、Liunx、web测试、接口测试、App测试、Python、selenium、管理工具、性能测试、LordRunner、计算机网络、组成原理、数据结构与算法、ab测试等。这些都是我在各个大厂总结出来的面试真题&#xff0c;很…

SSM框架-Spring的学习

1.Spring简介 Spring是什么&#xff08;理解&#xff09; 官网地址: https://spring.io/ ​ Spring框架由Rod Johnson开发&#xff0c;2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架&#xff0c;因此它完成了大量开发中的通用步骤&#xff0c;留给…

多个Filter的执行顺序 | 职责链模式应用

文章目录 前言一、多个Filter的执行顺序实操1. 配置web.xml方式注册Filter结论&#xff1a; 2. 注解方式注册Filter结论&#xff1a; 二、职责链模式的应用1. 回顾职责链模式2. Filter职责链模式的应用 总结 前言 Filter(过滤器) 是 Java Servlet 规范中定义的一种组件&#xf…

【计算机组成】三分钟了解顺序存储、直接存储、随机存储和相联存储的区别

一.按地址访问和按内容访问的区别 按地址访问&#xff08;顺序存储、直接存储和随机存储&#xff09;&#xff1a;我知道这个数据存在哪个地址中&#xff0c;现在我把这个地址给你&#xff0c;麻烦你帮我找出我要的数据来 按内容访问&#xff08;相联存储&#xff09;&#xff…

Netty编解码机制(一)

1.编码和解码基本介绍 1>.编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码; 2>.codec(编解码器)的组成部分有两个: decoder(解码器)和 encoder(编码器).encoder(编码器)负责把业务数据转换成字节码数据,而…

BurpSuite—-Scanner模块(漏洞扫描)

本文主要BurpSuite—-Scanner模块(漏洞扫描)介绍的相关内容 关于BurpSuite的安装可以看一下之前这篇文章&#xff1a; http://t.csdn.cn/cavWt 一、简介 Burp Scanner 是一个进行自动发现 web 应用程序的安全漏洞的工具。它是为渗透测试人员设计的&#xff0c;并且它和你现有…

Revit幕墙:这些命令在幕墙嵌板中的妙用及快速幕墙

一、Revit中这些命令在幕墙嵌板中的妙用 在我们做幕墙时&#xff0c;通常会有不同种类的幕墙&#xff0c;比如材质不同&#xff0c;颜色不同。这时我们就需要去选中嵌板进行替换新样式的嵌板。 1.通常我们在替换嵌板时都是通过Tab切换&#xff0c;然后选中嵌板。这样进行来回切…

windows免费版切割pdf拆分pdf提取pdf指定页码小工具

如图所示&#xff1a;选择pdf文件&#xff0c;输入指定页码区间&#xff0c;使用逗号分隔&#xff0c;逗号不区分中英文。如输入1-10&#xff0c;11-20&#xff0c;21-21&#xff0c;点击开始分割&#xff0c;会拆分出1-10.pdf&#xff0c;11-20.pdf&#xff0c;21-21.pdf&…