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

简介: properties集合使用及Spring依赖注入之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 Hashtable<k,v>implements Map<k,v>


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>
相关文章
|
2月前
|
数据采集 人工智能 自然语言处理
AI邂逅青年科学家,大模型化身科研“搭子”
2025年6月30日,首届魔搭开发者大会在北京举办,涵盖前沿模型、MCP、Agent等七大论坛。科研智能主题论坛汇聚多领域科学家,探讨AI与科研融合的未来方向。会上展示了AI在药物发现、生物计算、气候变化、历史文献处理等多个领域的创新应用,标志着AI for Science从工具辅助向智能体驱动的范式跃迁。阿里云通过“高校用云”计划推动科研智能化,助力全球科研创新。
|
9月前
|
存储 对象存储 索引
对象存储OSS-m3u8视频私有权限
当上传至私有存储桶的M3U8视频缺少签名信息时,会导致播放失败(403错误)。解决方案是使用OSS的动态签名机制,在首次访问M3U8文件时,通过在URL中添加`x-oss-process=hls/sign`参数,OSS将自动对所有TS切片地址进行签名,确保视频正常播放。
543 2
|
存储 前端开发 搜索推荐
使用session.setAttribute存储会话属性
使用session.setAttribute存储会话属性
|
资源调度 自然语言处理 JavaScript
【Vue 2】一个高效的低代码表单,可视化设计,一键生成源码
Variant Form 是一款基于 Vue 2 的低代码表单生成器,采用可视化拖拽设计界面,支持一键生成完整源码,大幅降低开发复杂度。其高度自定义特性可满足多种场景需求,无论是简单输入框还是复杂多级表单,都能轻松实现。此外,项目完全开源免费,适合有个性化需求的企业和开发者。主要功能包括拖拽式表单设计、自定义 CSS 样式、国际化多语言等,兼容 IE 11 浏览器,并支持导出 Vue 组件及 HTML 源码。通过简单的安装步骤即可在本地环境中搭建和使用 Variant Form,大幅提升开发效率。
450 0
|
消息中间件 负载均衡 Java
Kafka 消费者 API 指南:深入探讨消费者的实现与最佳实践
Kafka 消费者 API 是连接应用程序与 Kafka 集群之间的关键接口,用于从 Kafka 主题中拉取消息并进行处理。本篇文章将深入探讨 Kafka 消费者 API 的核心概念、用法,以及一些最佳实践,帮助你构建高效、可靠的消息消费系统。
|
Java 编译器 开发者
Java注解(Annotation)技术深入解析
Java注解(Annotation)技术深入解析
580 1
|
设计模式 存储 安全
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
286 0
|
SQL 监控 druid
Spring Boot 整合 Druid 指南
Spring Boot 整合 Druid 指南
45327 3
|
Java 关系型数据库 API
ElasticSearch使用篇
ElasticSearch使用篇
|
分布式计算 Hadoop Java
Hadoop【环境搭建 01】【hadoop-3.1.3 单机版】【Linux环境 腾讯云 CentOS Linux release 7.5.1804】【详细】
Hadoop【环境搭建 01】【hadoop-3.1.3 单机版】【Linux环境 腾讯云 CentOS Linux release 7.5.1804】【详细】
237 0

热门文章

最新文章