详细深入的理解Properties集合使用

简介: properties集合使用及Spring依赖注入之properties

一、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集合方法

image.png


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>

     


相关文章
|
6月前
Properties转换成Map Map转Properties以及读取Properties乱码解决String转
Properties转换成Map Map转Properties以及读取Properties乱码解决String转
197 0
|
2月前
|
Java
Properties类的使用
本文介绍了Java中Properties类的使用,它继承自Hashtable,用于处理属性文件。Properties对象可以保存键值对,并且能够从输入流加载或保存到输出流。文章展示了如何读取和写入properties文件,包括使用`setProperty`和`getProperty`方法来设置和获取属性值,以及使用`list`方法打印属性到控制台。同时,还解释了Properties类底层使用的哈希表结构,并提到了字符编码转换问题,特别是在处理中文时会转换成unicode编码。
|
XML Java 数据格式
spring中List,Set,Map集合的输出(详解)
spring中List,Set,Map集合的输出(详解)
123 0
|
6月前
|
IDE Java 开发工具
灵活配置 Spring 集合:List、Set、Map、Properties 详解
使用<property>标签的value属性配置原始数据类型和ref属性配置对象引用的方式来定义Bean配置文件。这两种情况都涉及将单一值传递给Bean
122 1
|
6月前
Spring-数组、List、Set、Map、Properties依赖注入格式
Spring-数组、List、Set、Map、Properties依赖注入格式
45 0
|
存储 安全 搜索推荐
集合--Map篇
集合--Map篇
68 0
|
Java
Java集合Properties
Java集合Properties
73 0
|
XML 存储 安全
一文带你全面了解Properties类
一文带你全面了解Properties类
180 0
一文带你全面了解Properties类