通过静态代码块读取配置文件配置静态属性

来源:互联网 发布:淘宝企业店铺开店 编辑:程序博客网 时间:2024/05/29 04:35

在项目开发中,通常会将一些经常变动的配置提取出来,做成一个配置类,通过该类的静态属性来引用配置。而在项目上线的时候,为了方便后期运维,将配置写在代码里面的方式是肯定不行的了,这时需要将配置信息提取出来,放到配置文件中。下面是一种采用静态代码块配置静态变量的方法。
java配置类,通过静态变量记录各种属性,在工程的其他方可以很方便的引用,可以根据配置文件里面配置的属性重新设置静态属性,如果没有配置文件则使用代码里面的默认值。
Config .java

package com.utils;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.util.Properties;public class Config {    /**是否调试模式*/    public static boolean isDebug=false;    /**登陆超时时间*/    public static long activeTime=5000L;    /**日志路径**/    public static String log_path="/default_log/";    static{        Properties pro = new Properties();        InputStreamReader in=null;            try {                in=new InputStreamReader(Config.class.getResourceAsStream("/config.properties"),"utf-8");                pro.load(in);                isDebug=Boolean.parseBoolean(pro.getProperty("isDebug"));                activeTime=Long.parseLong(pro.getProperty("activeTime"));                log_path=pro.getProperty("log_path");                System.out.println("配置文件读取成功:\n{isDebug:"+isDebug+",activeTime:"+activeTime+",log_path:"+log_path);            } catch (FileNotFoundException e) {                System.out.println("找不到配置文件");                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }finally {                if(in!=null){                    try {                        in.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }            }    }    public static void main(String []ss){        System.out.println("开始业务处理!");    }}

配置文件,放在项目根路劲下即可
config.properties

isDebug=trueactiveTime=20000log_path=/日志路径/log

运行main方法,可以看到在方法执行之前,各静态属性已经根据配置config.properties中的值进行了赋值,以下是测试输出结果。

配置文件读取成功:{isDebug:true,activeTime:20000,log_path:/日志路径/log开始业务处理!