Spring6梳理12——依赖注入之注入Map集合类型属性

news2024/11/15 8:50:26

以上笔记来源:
尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解)https://www.bilibili.com/video/BV1kR4y1b7Qc

12  依赖注入之注入Map集合类型属性

12.1 创建Student类和Teacher类

Student类中创建了run方法,展示了被注入的普通属性和map属性的值

Teacher类则创建了map类型的getter,setter方法以及方便输出的tostring方法

package com.atguigu.spring6.iocxml.dimap;

import java.util.Map;

/**
 * @package: com.atguigu.spring6.iocxml.dimap
 * @className: Student
 * @Description:
 * @author: haozihua
 * @date: 2024/8/20 15:20
 */
public class Student {


    //一个学生对应很多个老师,一个老师也可以对应很多个学生
      
    private Map<String,Teacher> teacherMap;

    private String sid;
    private String sname;

    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public Map<String, Teacher> getTeacherMap() {
        return teacherMap;
    }

    public void setTeacherMap(Map<String, Teacher> teacherMap) {
        this.teacherMap = teacherMap;
    }


    public void run() {
        System.out.println("学生编号: " + sid + " " + "学生名称:" + sname);
        System.out.println(teacherMap);
    }
}
package com.atguigu.spring6.iocxml.dimap;

/**
 * @package: com.atguigu.spring6.iocxml.dimap
 * @className: Teacher
 * @Description:
 * @author: haozihua
 * @date: 2024/8/20 15:21
 */
public class Teacher {
        private Integer teacherId;
        private String teacherName;

        public Integer getTeacherId() {
                return teacherId;
        }

        public void setTeacherId(Integer teacherId) {
                this.teacherId = teacherId;
        }

        public String getTeacherName() {
                return teacherName;
        }

        public void setTeacherName(String teacherName) {
                this.teacherName = teacherName;
        }

        @Override
        public String toString() {
                return "Teacher{" +
                        "teacherId=" + teacherId +
                        ", teacherName='" + teacherName + '\'' +
                        '}';
        }

        public Teacher(Integer teacherId, String teacherName) {
                this.teacherId = teacherId;
                this.teacherName = teacherName;
        }
        public Teacher() {

        }

}

12.2 创建XML配置文件

由于在Student类中创建了关于Teacher类的map集合,因此在student的bean中配置信息,首先创建普通类型属性,根据实体类中的变量名称,设置name属性值

之后创建Map集合类型属性时,注意entry>key>value或者ref标签的嵌套

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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">
    <!--
        1.创建两个类
        2.注入普通类型属性
        3.在学生bean注入map集合类型属性
    -->
    <bean id="teacherone" class="com.atguigu.spring6.iocxml.dimap.Teacher">
        <property name="teacherId" value="100"></property>
        <property name="teacherName" value="西门庆"></property>
    </bean>

    <bean id="teachertwo" class="com.atguigu.spring6.iocxml.dimap.Teacher">
        <property name="teacherId" value="200"></property>
        <property name="teacherName" value="东方不败"></property>
    </bean>

    <bean id="student" class="com.atguigu.spring6.iocxml.dimap.Student">
        <property name="sid" value="2000"></property>
        <property name="sname" value="李四"></property>
        <property name="teacherMap">
            <map>
                <entry>
                    <key>
                        <value>10010</value>
                    </key>
                    <ref bean="teacherone"></ref>
                </entry>

                <entry>
                    <key>
                        <value>210</value>
                    </key>
                    <ref bean="teachertwo"></ref>
                </entry>
            </map>
        </property>
    </bean>
</beans>

12.3  创建测试类方法

    @Test
    public void TestStu(){
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean-dimap.xml");
        Student student = context.getBean("student",Student.class);
        student.run();
    }

12.4  运行截图

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

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

相关文章

灵当CRM multipleUpload.php 文件上传致RCE漏洞复现

0x01 产品描述&#xff1a; 灵当CRM是一款专为中小企业量身定制的智能客户关系管理工具&#xff0c;由上海灵当信息科技有限公司开发和运营。该系统广泛应用于多个行业&#xff0c;包括金融、教育、医疗、IT服务及房地产等领域&#xff0c;旨在满足企业对客户个性化管理的需求&…

集合ArrayList常用方法

源代码&#xff1a; 输出结果&#xff1a;

小米Civi2机型工程固件 资源预览 刷写说明 与nv损坏去除电阻图示

小米Civi2机型机型代码为:ziyi。次期开始讲在博文中陆续解析机型nv损坏修复的一些步骤与当前机型去除校验电阻相关的图示与说明。注意。米系列机型有串码校验。去除电阻需要一定的技术,请谨慎操作。 通过博文了解 1💝💝💝-----此机型工程固件的资源刷写注意事项 2�…

【计算机网络 - 基础问题】每日 3 题(二十四)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

音乐服务器测试报告

项目背景 该音乐服务器系统使用的是前后端分离的方式来实现,将相关数据存储到数据库中, 且将其部署到云服务器上. 前端主要构成部分有: 登录页面, 列表页面, 喜欢页面, 添加歌曲4个页面组成. 通过结合后端实现了主要的功能: 登录, 播放音乐, 添加音乐, 收藏音乐, 删除音乐, 删…

uniapp实现在表单中展示多个选项,并且用户可以选择其中的一个或多个选项

前言 uni-data-checkbox是uni-app的一个组件,用于在表单中展示多个选项,并且用户可以选择其中的一个或多个选项。该组件可以通过设置不同的参数来控制选项的样式、布局和行为。 提示:以下是本篇文章正文内容,下面案例可供参考 uni-data-checkbox组件具有以下特点:: 1、跨…

Git 工作区、暂存区与修改全解析

工作区和暂存区是 Git 中一个非常重要的概念&#xff0c;弄明白了他们&#xff0c;就弄明白了 Git 的很多操作到底干了什么。 ‍ 工作区&#xff08;Working Directory&#xff09; 工作区&#xff0c;就是一个目录&#xff0c;比如我的 LearnGit ​文件夹就是一个工作区&am…

JavaScript --模版字符串用反引号

用反引号 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…

SpringBoot集成阿里easyexcel(一)基础导入导出

easyexcel主要用于excel文件的读写&#xff0c;可使用model实体类来定义文件读写的模板&#xff0c;对开发人员来说实现简单Excel文件的读写很便捷。可参考官方文档 https://github.com/alibaba/easyexcel 一、引入依赖 <!-- 阿里开源EXCEL --><dependency><gr…

《深度学习》ResNet残差网络、BN批处理层 结构、原理详解

目录 一、关于ResNet 1、什么是ResNet 2、传统卷积神经网络存在的问题 1&#xff09;梯度消失和梯度爆炸问题 2&#xff09;训练困难 3&#xff09;特征表示能力受限 4&#xff09;模型复杂度和计算负担 3、如何解决 1&#xff09;解决梯度问题 BN层重要步骤&#xff1a; 2…

Gstreamer中,使用mp4或者flv作为视频源去推流RTP等视频流时,需要先解码在编码才能正常

前言&#xff1a; 在Gstreamer中&#xff0c;视频源可以有很多&#xff0c;在很多时候&#xff0c;我们为了测试&#xff0c;会使用MP4等文件作为视频源进行测试&#xff0c;但是发现无论是我自己测试&#xff0c;还是很多网上的命令&#xff0c;都需要先对mp4的h264数据解码以…

等保测评实战:构建企业网络安全的铜墙铁壁

在数字化转型的浪潮下&#xff0c;企业面临的网络安全威胁日益复杂多变。信息安全等级保护&#xff08;等保&#xff09;测评作为国家强制性标准&#xff0c;不仅检验着企业的网络安全防护能力&#xff0c;更是企业构建网络安全“铜墙铁壁”的实战指南。本文将从实战角度&#…

华为云徐峰:AI赋能应用现代化,加速软件生产力跃升

2024年9月19日&#xff0c;在华为全联接大会2024的“AI赋能应用现代化&#xff0c;加速软件生产力跃升”论坛上&#xff0c;华为云PaaS服务产品部部长徐峰发表了主题演讲&#xff0c;介绍了未来应用智能化演进趋势&#xff0c;分享了智能化应用的行业实践&#xff0c;并发布了华…

Elasticsearch 启动后在浏览器输入http://localhost:9200 访问失败

windows Elasticsearch 启动后在浏览器输入http://localhost:9200 访问失败 文章目录 前言本地下载安装了个elasticsearch&#xff0c;启动成功了&#xff0c;在本地访问http://localhost:9200 无法访问&#xff01;&#xff01;&#xff01;难受了一下。 一、windows Elastics…

从文本图片到多模态:3D 数字人打开企业全域商业增长新空间

摘要&#xff1a;数字化与AI浪潮推动各行业变革&#xff0c;内容形式也发生巨变&#xff0c;从文本到多媒体的多模态表达&#xff0c;标志着内容创造走向升维。AIGC 3D生成技术的突飞猛进&#xff0c;彻底打破了传统3D内容生产门槛高、周期长、成本高昂的问题。将3D数字人的打造…

两种调用智谱AI API的方式

一、 用智谱AI依赖包调用 from zhipuai import ZhipuAI zhipuai_api_keyXXXXXXXXXXXXXXXXXX # 请填写您自己的APIKeymessages[{"role": "system", "content": "你是一名经验丰富的人工智能工程师&#xff0c;请你解答用户的问题"},{…

前端文件下载全流程

一、首先是点击下载函数功能 源代码&#xff1a; java const dow async (record: any) > {console.log(record,record);let date: any {}date.pcno record.pcnodate.fileName record.fileNamedate.gmtCreated dayjs(record.gmtCreated).format(YYYY-MM)date.importSta…

Electron 更换窗口图标、exe执行文件图标

首先在项目根目录下准备好图标&#xff1a; 配置窗口图标&#xff1a; 配置打包后 exe执行文件 的图标&#xff1a; 效果展示&#xff1a;

gitlab默认克隆地址的修改

目录 1.找到opt/gitlab/embedded/service/gitlab-rails/config目录&#xff0c;打开gitlab.yml 2.修改地址和端口 3.重启gitlab 1.找到opt/gitlab/embedded/service/gitlab-rails/config目录&#xff0c;打开gitlab.yml cd /opt/gitlab/embedded/service/gitlab-rails/confi…

扩展uview复选组件库支持自定义图片+自定义内容

uView 是一套基于UniApp 的前端 UI 框架&#xff0c;它提供了丰富的组件库&#xff0c;用于快速开发移动端和微信小程序等应用。 基本使用 在 uView 中&#xff0c;复选组件通常用于让用户从一组选项中选择多个项目。这些组件可能以 Checkbox Group&#xff08;复选框组&…