首页 > 编程语言 >java 自定义读取properties配置文件属性

java 自定义读取properties配置文件属性

时间:2023-08-01 19:35:18浏览次数:55  
标签:java 自定义 文件属性 get IOException import throws String

把属性存到一个map里,并提供get方法,如果没有获取到值,则重新加载一遍配置文件,重新赋值,从而刷新数package com.aaa.demo.testProperties;

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * projectName: testSpring
 *
 * @author: 
 * time: 2023/8/1 18:11
 * description:
 */
public class TestProPerties {

    private static Map propertiesMap = new HashMap();

    public static void main(String[] args) throws IOException {
        String name = getValue("name");
        System.out.println(name);
    }
/**
     * 获取值,没有值的话会重新从properties配置文件加载一遍
     * @param key
     * @return
     * @throws IOException
     */
    public static String getValue(String key) throws IOException {
        String value = (String) propertiesMap.get(key);

        if (value == null || value.length() < 1) {
            TestProPerties testProPerties = new TestProPerties();
            testProPerties.refresh();
            return (String) propertiesMap.get(key);
        }else {
            return value;
        }
    }


    /**
     * 刷新数据
     * @throws IOException
     */
    public void refresh() throws IOException {

        //获取配置文件,要注意路径问题,路径不对会找不到文件,当前文件在SRC根目录下
        InputStream is = this.getClass().getResourceAsStream("/test11.properties");

        Properties prop= new Properties();
        prop.load(is);
        is.close();

        Enumeration<?> enumeration = prop.propertyNames();
        while (enumeration.hasMoreElements()) {
            String o = (String) enumeration.nextElement();
            propertiesMap.put(o, prop.get(o));
        }
    }
}

 

标签:java,自定义,文件属性,get,IOException,import,throws,String
From: https://www.cnblogs.com/huangruiwu/p/17598849.html

相关文章

  • JavaWeb和MVC三层架构
    JavaWeb概述网站发布和部署一定要依托技术语言吗:不一定,一个网站可以直接发布和部署,因为因为浏览器能够识别网页只需要两样东西,网络和静态页面,还有一个装在他们的容器,比如nginx。静态页面面临的问题:1:静态网页是固定的,是不可变的。如果一个网站比如腾讯首页,这里需要1000文......
  • 负载均衡算法: 简单轮询算法, 平滑加权轮询, 一致性hash算法, 随机轮询, 加权随机轮询
    直接上干活/***@version1.0.0*@@menu<p>*@date2020/11/1716:28*/publicclassLoadBlance{staticMap<String,Integer>serverWeightMap=newHashMap<>();static{serverWeig......
  • Java学习-2
    今天稍微刷了几道算法题,整理便于之后复习.1.计算小于n的所有质数的个数。classSolution{publicintcountPrimes(intn){boolean[]arr=newboolean[n];intcnt=0;for(inti=2;i<n;i++){if(arr[i])continue;cnt+=......
  • 彻底搞懂Java中的Runnable和Thread
    写在前面今天在阅读ThreadPoolExecutor源码的时候觉得有些地方理解起来似是而非,很别扭!最后才猛然发现,原来是我自己的问题:没有真正理解Runnable和Thread的含义!我之前对于Runnable和Thread理解的误区在于:“Runnble和Thread是实现多线程的两种方式,在Java中要实现多线程运行要么实现......
  • java 解决线程安全的两种方式(Synchornized和Lock)
    java解决线程安全的两种方式(Synchornized和Lock)原文链接:https://www.cnblogs.com/MrFugui/p/15610780.htmlsynchornized与lock的不同:synchronized机制在执行完相应的同步代码以后,自动的释放同步监视器lock需要手动的启动同步(Lock()),同时结束同步也需要使用手动的实现(unlock())......
  • java 生成流水号 java流水号生成器 转载
    java生成流水号java流水号生成器转载原文链接:https://blog.51cto.com/u_16099315/6331544生成流水线单号格式:业务码+yyyyMMdd+数字例如:LSH2022102700001业务码+秒级时间戳+((userId+随机数)加密)JAVA生成编号工具类生成流水号(格式:业务码+时间+当天自增号)业务码+......
  • java自动生成流水号
    原文链接:http://www.bxcqd.com/news/495848.html......
  • Java之流水号生成器实现
    Java之流水号生成器实现原文链接:https://www.jianshu.com/p/331b872e9c8f开心一笑提出问题如何使用jAVA生成流水号,同时支持可配置和高并发???解决问题假设你们项目已经整合缓存技术假如你有一定的Java基础假如......下面的代码实现的是一个支持高并发,可配置,效率高的......
  • 如何开发一个小程序自定义组件
    什么是小程序自定义组件?小程序自定义组件是小程序开发中常用的一种技术,它可以将小程序中常用的UI组件封装成一个独立的组件,并在不同的页面中复用,从而提高小程序的代码可维护性和复用性。自定义组件可以包含自定义的样式、属性、事件等,它们是一种独立的封装单元,可以在不同的页面......
  • java打印日志时,如何对字段进行脱敏?
    java打印日志时,如何对字段进行脱敏?原文链接:https://blog.csdn.net/weixin_43901749/article/details/129150818第一步,创建类继承MessageConverter,重写convert方法,添加注解@Component("sensitive")第二步,在logback.xml中增加conversionRule标签在我们开发项目的时候,有些......