一、properties集合
1、Properties类介绍
JDK API文档描述:
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载 。属性列表中每个键及其对应值都是一个字符串。
一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
因为Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。相反,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。类似地,如果在“不安全”的 Properties 对象(即包含非 String 的键)上调用 propertyNames 或 list 方法,则该调用将失败。
总结:Properties是Hashtable集合的子类,也是线程安全的。
Properties 类表示了一个持久的属性集。 Properties可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
2、Properties类的特点
继承于Hashtable,是线程安全的键值对存储结构。java.util.Properties 集合 extends Hashtableimplements Map
Properties可保存在流中或从流中加载。
只能保存字符串的键值对。
该集合不能写泛型
可以持久化的属性集。键值可以存储到集合中,也可以存储到硬盘、U盘等,store 把流中临时的数据 持久化到硬盘中存储
唯一的一个和IO流有关的技术结合使用
load把硬盘中的文件(键值对) 读取到 集合中
3、properties集合方法
4、properties集合方法具体使用
/** * @author 王恒杰 * @version 1.0 * @date 2021/11/10 19:53 * @email 1078993387@qq.com * @Address 天津 * @Description:properties相关集合类 */ public class PropertiesTest { @Test public void PropertiesFileTest() throws IOException { //创建properties集合对象 Properties pro = new Properties(); // 设计键值对 pro.setProperty("1", "a"); pro.setProperty("2", "b"); pro.setProperty("3", "c"); // 据键值对获取值 String value = pro.getProperty("1"); System.out.println(value); System.out.println("--------------"); //不常用的遍历方法 Set<String> namesSet = pro.stringPropertyNames(); for (String name : namesSet) { System.out.println(name); } System.out.println("--------------"); //读取属性文件中的内容(Properties集合特有方法) FileReader fr = new FileReader("pro.properties"); pro.load(fr); fr.close(); System.out.println("--------------"); // 把键值对写入文件中(Properties集合特有的方法) FileOutputStream fos = new FileOutputStream("pro2.properties"); pro.store(fos, "Comments"); fos.close(); } }
二、Spring依赖注入之properties
properties类型
//properties集合 private Properties properties; //properties集合遍历 for(Map.Entry entry:properties.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue()); }
properties类型注入
<property name="properties"> <props> <prop key="key1">value1</prop> <prop key="key2">value2</prop> <prop key="key3">value3</prop> <prop key="key4">value4</prop> </props> </property>