当前位置: 首页 > news >正文

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

以上笔记来源:
尚硅谷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;}@Overridepublic 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  创建测试类方法

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

12.4  运行截图

http://www.lryc.cn/news/449518.html

相关文章:

  • 基于SpringBoot校园失物招领系统设计与实现
  • 推荐4款2024年热门的PDF转ppt工具
  • [深度学习]卷积神经网络CNN
  • 从零开始,Docker进阶之路(三):Docker镜像与命令
  • 【计算机网络】网络层详解
  • 后端开发刷题 | 最小的K个数(优先队列)
  • 【JavaEE】——阻塞队列,生产消费者模型(较难)
  • makefile和CMakeLists/C++包管理器
  • STM32 通过软件模拟 I2C 驱动 24Cxx 系列存储器
  • Go语言匿名字段使用与注意事项
  • 2024最新!!Java后端面试题(2)看这一篇就够了
  • 超好用的10款视频剪辑软件,从入门到精通
  • python股票因子,交易所服务器宕机,量化交易程序怎么应对
  • 瑞芯微RK3566鸿蒙开发板Android11修改第三方输入法为默认输入法
  • 使用nest+typeorm框架写数据库导致mysql的binlog暴增记录
  • 组合逻辑元件与时序逻辑元件
  • 天龙八部怀旧单机微改人面桃花+安装教程+GM工具+虚拟机一键端
  • docker管理
  • electron教程(三)窗口设置
  • 图像增强论文精读笔记-Deep Retinex Decomposition for Low-Light Enhancement(Retinex-Net)
  • 2024年配置YOLOX运行环境+windows+pycharm24.0.1+GPU
  • vue-i18n在使用$t时提示类型错误
  • 大厂面试真题-什么是CAS单点登录?什么原理
  • 用Java提取PDF表格到文本、CSV、Excel工作表
  • OpenCV视频I/O(10)视频采集类VideoCapture之从视频流中检索一帧图像函数 retrieve()的使用
  • 【RocketMQ】SpringBoot整合RocketMQ
  • mysql replace无法替换空格?如何解决
  • Redis篇(环境搭建)
  • 【C++题目】7.双指针_和为 s 的两个数字
  • 网络通信1-传输层