数据集合注入

news/2025/2/9 6:41:58/

集合注入  

前面我们已经能完成引入数据类型和简单数据类型的注入,但是还有一种数据类型集合,集合中既可
以装简单数据类型也可以装引用数据类型,对于集合,在Spring中该如何注入呢?

先来回顾下,常见的集合类型有哪些?

  • 数组
  • List
  • Set
  • Map
  • Properties

针对不同的集合类型,该如何实现注入呢?

环境准备  

  • 创建一个Maven项目
  • pom.xml添加依赖
  • resources下添加spring的配置文件applicationContext.xml

这些步骤和前面的都一致,大家可以快速的拷贝即可,最终项目的结构如下:

(1)项目中添加添加BookDao、BookDaoImpl类

1 public interface BookDao {2     public void save();3 }4  5 public class BookDaoImpl implements BookDao {6     7 public class BookDaoImpl implements BookDao {8  9     private int[] array;10  11     private List<String> list;12  13     private Set<String> set;14  15     private Map<String,String> map;16  17     private Properties properties;18  19      public void save() {20         System.out.println("book dao save ...");21  22         System.out.println("遍历数组:" + Arrays.toString(array));23  24         System.out.println("遍历List" + list);25  26         System.out.println("遍历Set" + set);27  28         System.out.println("遍历Map" + map);29  30         System.out.println("遍历Properties" + properties);31     }32     //setter....方法省略,自己使用工具生成
33 }

(2)resources下提供spring的配置文件,applicationContext.xml

1 <?xml version="1.0" encoding="UTF-8"?>2 <beans xmlns="http://www.springframework.org/schema/beans"3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">5  6     <bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>7 </beans>

(3)编写AppForDICollection运行类,加载Spring的IOC容器,并从中获取对应的bean对象

1 public class AppForDICollection {2     public static void main( String[] args ) {3         ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");4         BookDao bookDao = (BookDao) ctx.getBean("bookDao");5         bookDao.save();6     }7 }

接下来,在上面这个环境中来完成 集合注入 的学习:

下面的所以配置方式,都是在bookDao的bean标签中使用进行注入

1 <?xml version="1.0" encoding="UTF-8"?>2 <beans xmlns="http://www.springframework.org/schema/beans"3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">5  6     <bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl">7         8     </bean>9 </beans>

注入数组类型数据  

1 <property name="array">2     <array>3         <value>100</value>4         <value>200</value>5         <value>300</value>6     </array>7 </property>

注入List类型数据  

1 <property name="list">2     <list>3         <value>itcast</value>4         <value>itheima</value>5         <value>boxuegu</value>6         <value>chuanzhihui</value>7     </list>8 </property>

 

注入Set类型数据  

1 <property name="set">2     <set>3         <value>itcast</value>4         <value>itheima</value>5         <value>boxuegu</value>6         <value>boxuegu</value>7     </set>8 </property>

注入Map类型数据  

1 <property name="map">2     <map>3         <entry key="country" value="china"/>4         <entry key="province" value="henan"/>5         <entry key="city" value="kaifeng"/>6     </map>7 </property>

 map需要entry的写法。因为map是一个键值对的形式 

注入Properties类型数据  

1 <property name="properties">2     <props>3         <prop key="country">china</prop>4         <prop key="province">henan</prop>5         <prop key="city">kaifeng</prop>6     </props>7 </property>

 配置完成后,运行下看结果:

说明:

  • property标签表示setter方式注入,构造方式注入constructor-arg标签内部也可以写<array>、<list>、<set>、<map>、<props>标签
  • List的底层也是通过数组实现的,所以<list>和<array>标签是可以混用
  • 集合中要添加引用类型,只需要把<value>标签改成<ref>标签,这种方式用的比较少

http://www.ppmy.cn/news/53596.html

相关文章

JAVA接口的基本测试------JAVA入门基础教程

public class Interface {public static void main(String[] args){System.out.println(Flyable.max_speed);System.out.println(Flyable.min_speed);//类与接口是实现关系Bullet b new Bullet();b.attack();b.fly();Flyable f new Bullet();f.fly();} }interface Flyable {p…

数据包守恒 TCP 拥塞控制

数据包守恒是包括拥塞控制在内的合理利用带宽的方法之基石&#xff0c;它维持了有效网络传输的稳定&#xff0c;过去 40 年是&#xff0c;未来还是。数据包守恒可以描述为&#xff1a; 当带宽恰好满载时&#xff0c;receiver 收到 1 个数据包后 sender 才能发送 1 个数据包。当…

hbase 设置超时参数

一、为什么要设置超时参数 hbase设计的目标是成为一个高可用集群&#xff0c;能够在失败的时候快速响应&#xff0c;当出现网络抖动等偶发情况时&#xff0c;能快速重试&#xff0c;让用户可以快速拿到结果。而不是一直卡着&#xff0c;使得上层应用阻塞等待。 这个功能可以通…

python jpg转成多帧tif

python jpg转成多帧tif -- coding: UTF-8 -- import glob from PIL import Image for i in glob.glob(r’D:\2-python\9-清远\JPG-tif-pdf\60-2018-永久-G2-东城江埗JPG\60-2018-永久-G2-东城江埗-0101*.jpg’): im Image.open(i,“r”) print(i.split(“.”)[0]) im.s…

Makefile

目录 1、什么是Makefile2、Makefile文件命名和规则3、工作原理4、变量5 模式匹配6 函数 橙色 1、什么是Makefile 2、Makefile文件命名和规则 可以看到&#xff0c;lession07目录下有如下的几个文件&#xff0c;我在该目录下先创建Makefile目录&#xff0c;并在其中写入如下图的…

JVM内存模型的演变

1&#xff0c;背景 class文件、类的加载过程。我们的class文件就要进入到JVM内存里&#xff0c;我们沿着经典的JDK1.6&#xff0c;JDK1.7&#xff0c;JDK1.8看看在其中都经历了哪些改变 概念的统一&#xff1a; 方法区&#xff1a; 方法区可以看作是JVM逻辑上管理一片区域的…

【数据库】增删改查(进阶)

目录 1、数据库的约束类型 1.1、not noll约束 1.2、unique&#xff08;唯一性约束&#xff09; 1.3、default默认值约束 1.4、primary key&#xff08;主键约束&#xff09; 1.4.1、自增主键&#xff08;关键字auto_increment&#xff09; 1.5、foreign key &#xff08;外…

C语言函数大全-- p 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- p 开头的函数 1. perror 1.1 函数说明 函数声明函数功能void perror(const char *s);用于将当前错误码对应的错误信息打印到标准输出设备&#xff08;通常是终端&#xff09;。 参数&#xff1a; s &#xff1a; 用于描述错误类型或…