博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目总结27:properties配置文件的读取(源码)
阅读量:6531 次
发布时间:2019-06-24

本文共 3920 字,大约阅读时间需要 13 分钟。

项目总结27:properties配置文件的读取(源码)

 

前言 

使用properties文件配置的好处在于,可以统一管理一些可能会进行调整的参数;

 

直接上源码

配置文件:thirdpartyconfig.properties; 直接放在 resources目录下;

#这个配置类是为了配置实验室第三方对接的数据lab_data_ws_url=http://XXX.XX.com:8000/Webjy.asmx/GetDataBYSyXX

配置读取类:ThirdPartyConfig;项目启动时,读取配置文件

package com.hs.api.service.thirdparty;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.util.Properties;public class ThirdPartyConfig {    private static final Logger log = LoggerFactory.getLogger(ThirdPartyConfig.class);    private static Properties properties = new Properties();    private static final String SYSTEM_CONFIG_NAME = "thirdpartyconfig.properties";    private static ThirdPartyConfig singleton = new ThirdPartyConfig();    //在定义变量时就将其实例化    private ThirdPartyConfig(){        //System.out.println("构造函数被调用");    }         public static ThirdPartyConfig getInstance(){        return singleton;    }        public static void load(){      String filePath = null;      String confPath = System.getenv().get("CONFIG_PATH");      if(null == confPath){          load(SYSTEM_CONFIG_NAME);      }else{          //System.out.println("进这里就读了环境变量--->"+confPath);          if (!confPath.endsWith(File.separator)) {              confPath = confPath + File.separator;          }          filePath = confPath + SYSTEM_CONFIG_NAME;          File file = new File(filePath);          if(file.exists()){              InputStream is = null;              try {                  is = new FileInputStream(file);                  properties.load(is);              }catch (FileNotFoundException e) {                  log.warn("The config file '" + filePath + "' does not exist.",e);              }catch (IOException e) {                    log.warn("Failed to load the settings from the file: " + filePath);              }finally {                  if (is != null) {                      try {                          is.close();                      } catch (IOException e){}                  }              }           }else{              load(SYSTEM_CONFIG_NAME);          }      }    }        public static void load(String path){        //System.out.println("进这里就没做配置分离--->"+path);        try {            properties.load(ThirdPartyConfig.class.getResourceAsStream("/" + path));        } catch (FileNotFoundException e) {            log.warn("The config file core-config.properties does not exist.");        } catch (IOException e) {            log.warn("Failed to load the settings from the file: core-config.properties");        }    }        static {        load();    }        public static String getConfig(String key) {        return properties.getProperty(key);    }        public static void main(String args[]){        System.out.println(ThirdPartyConfig.getConfig("lab_data_ws_url"));    }}

 

 

 配置外放类:ThirdPartyConfigUtil;其他业务类可以通过ThirdPartyConfigUtil获取需要的参数

package com.hs.api.service.thirdparty;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;    public class ThirdPartyConfigUtil {    private static final Log log = LogFactory.getLog(ThirdPartyConfigUtil.class);    //实验数据    public String lab_data_ws_url = "";//webservice的URL            private static final ThirdPartyConfigUtil single = new ThirdPartyConfigUtil();     //饿汉式单例类.在类初始化时,已经自行实例化      public static ThirdPartyConfigUtil getInstance() {        return single;    }         private ThirdPartyConfigUtil() {        initPropertis();    }    private void initPropertis(){        lab_data_ws_url = ThirdPartyConfig.getConfig("lab_data_ws_url");    }}

 

测试类

package com.hs.api.service.thirdparty;/* * *@Description: *@Author:TYJ *@Date: create in  2019/5/28 11:24 */public class test {    public static void main(String[] args) {        System.out.println(ThirdPartyConfigUtil.getInstance().lab_data_ws_url);        //日志输出:http://XXX.XX.com:8000/Webjy.asmx/GetDataBYSyXX    }}

 

转载于:https://www.cnblogs.com/wobuchifanqie/p/10936176.html

你可能感兴趣的文章
我的友情链接
查看>>
在广州的犄角旮旯里,寻找老字号的独特味道
查看>>
Linux权限管理(基本权限、默认权限)
查看>>
我的友情链接
查看>>
LVM管理 - PV,VG以及LV
查看>>
Maven生命周期详解
查看>>
python导入mysql
查看>>
git 实践(一) pull的使用
查看>>
一文读懂JavaScript和ECMAScript的区别
查看>>
寿光洪灾面前,这群淘宝上的陌生人做了件小事
查看>>
Linux下的通配符和特殊符号用法详解
查看>>
精选前端面试题之Javascript(20道)
查看>>
android 使用webview加载网页问题
查看>>
css中的常见布局面试题
查看>>
基于 Alpine 基础镜像构建 H2 Database 镜像
查看>>
web框架flask(8)——关注者,联系人和好友
查看>>
opengl纯动态管线备忘
查看>>
Hudson 之旅(一)
查看>>
记录下配置nginx 遭遇的问题-mime类型不对被hang
查看>>
keepalived和应用在同一台机子的配置
查看>>