读取不同位置的配置文件

  在开发和测试环境中,很容易混淆如何获取不同位置的配置文件。为了避免重复造轮子,在此记录一下自己的解决方案:

  可以提出如下设想:

    1、在开发环境下,读取resources下的config.properties文件
    2、在生产环境下,读取jar文件同级目录下的config.properties文件,如果没有该config.properties文件,则读取jar包中的config.properties

 1 public class ConfigUtils {
 2     /**
 3      * 根据配置文件中的内容获取配置信息内容
 4      * @param property 配置的属性
 5      * @return 配置属性值
 6      * @throws IOException
 7      */
 8     public static String getProperty(String property) throws IOException {
 9         Properties properties = new Properties();
10         InputStream inputStream = null;
11         // 获取.jar文件同级目录下,config.properties文件的绝对路径
12         String configFilePath = System.getProperty("user.dir") + File.separator + "config.properties";
13         // 如果在.jar文件同级目录下,config.properties文件存在,则使用该文件作为配置文件
14         if (new File(configFilePath).exists()) {
15             inputStream = new BufferedInputStream(new FileInputStream(configFilePath));
16         } else {
17             //如果在.jar文件同级目录下,config.properties文件不存在,则使用.jar文件中的config.properties文件作为配置文件
18             inputStream = ConfigUtils.class.getClassLoader().getResourceAsStream("config.properties");
19         }
20         properties.load(inputStream);
21         String value = properties.getProperty(property);
22         return value;
23     }
24 }

 

转载于:https://www.cnblogs.com/ppcoder/p/9006036.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring+log4j

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条…

mysql主从复制 lvs+ keepalived

2019独角兽企业重金招聘Python工程师标准>>> 一、环境 Master(主机A):192.168.1.1 Slave(主机B) :192.168.1.2 W-VIP(写入) :192.168.1.3 R-VIP&#xff…

php 逗号编码,php有几种编码

当前 mbstring 模块支持以下的字符编码。这些字符编码中的任意一个都能指定到 mbstring 函数中的 encoding 参数。该 PHP 扩展支持的字符编码有以下几种:UCS-4*UCS-4BE (推荐学习:PHP视频教程)UCS-4LE*UCS-2UCS-2BEUCS-2LEUTF-32*UTF-32BE*UTF-32LE*UTF-…

34 丑数

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7 。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数 Java: 1 public class Solution {2 public int GetUglyNumbe…

oracle 导入导出

oracle 导入导出 CREATE TABLESPACE LCZYM LOGGING DATAFILE G:\ZYM_DB\LCZYM.ora SIZE 1000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 导出 exp 用户名/密码数据库 file路径 owner用户名 logc:\orabackup\hkbfull.log 删除此用户所有对象 drop user emi…

[TODO]Python拾遗(三)

Head First 系列书 这个系列的书很少有其他专业书里面看似很高大上的名词,只有一些最基本的概念,而且遵循的就是"learning by doing"的理念,每一章都是以编程例子为主的。《Head First Python》更夸张,全书其实就一个pr…

php+tp框架+API,【路由】利用Thinkphp路由实现API开发版本管理

# 前言*****### 在使用Thinkphp接口开发项目的程中可能会遇到这样的场景 准备将原有系统重构一遍,但是出于某种原因,老的系统在未来一段时间内必须和新的版本共存; APP存在老版本不能强制升级,所以服务端接口需要同时兼容新老客户…

jmeter命令行运行-分布式测试

秒秒开心jmeter命令行运行-分布式测试 上一篇文章我们说到了jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存、cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要…

水龙吟

人长是、多怨我,怎如今、情词穷尽。文墨浅薄,一字不题,忧恨难泄。闻说古今,才子佳人,难成双美。柳七一句,玉萧声断。 人已去、玉长在,莽匹夫、世故笑,轮转境台空觅梦。乱言疯语,一大快事,还看此篇。醉也未极,到梦中戏猴…

ambari 自定义组件安装

借鉴:http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari3/index.htmlAmbari 在启动的时候,会扫描 resource 目录下 Stack 下面的 service 配置。也就是每个 Service 的 metainfo.xml,同时会将这些配置信息放在自己的数据…

php 303,HTTP 的重定向301,302,303,307(转)

301 永久重定向,告诉客户端以后应从新地址访问.302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found.现在使用只是为了兼容性的处理,包括PHP的默认Location重定向用的也是302.但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化303:对于POST请求…

android 蓝牙各种UUID (转)

ServiceDiscoveryServerServiceClassID_UUID {00001000-0000-1000-8000-00805F9B34FB} BrowseGroupDescriptorServiceClassID_UUID {00001001-0000-1000-8000-00805F9B34FB}PublicBrowseGroupServiceClass_UUID {00001002-0000-1000-8000-00805F9B34FB} #蓝牙串口服务Serial…

android 双向滑动 seekbar

实现原理:1、自定义View,在onDraw(Canvas canvas)中,画出2个Drawable滑动块,2个Drawable滑动条,2个Paint(text)2、监听onTouchEvent()事件,修改滑块和滑动条的坐标,调用i…

java的算术表达式程序,java计算数学表达式

import java.util.EmptyStackException;import java.util.Stack;public class CaculateFunction {private static String[] TrnsInToSufix(String IFX)// PFX放后缀表达式,IFX为中缀表达式{String PFX[] new String[IFX.length()];StringBuffer numBuffer new Str…

java开发区块链只需150行代码

本文目的是通过java实战开发教程理解区块链是什么。将通过实战入门学习,用Java自学开发一个很基本的区块链,并在此基础上能扩展如web框架应用等。这个基本的java区块链也实现简单的工作量证明系统。本文用一个java例子,演示了开发一个区块链应用的过程,涉…

关于Linux的总结(三)

1.man_page.txt 1.内部命令:echo 查看内部命令帮助:help echo 或者 man echo2.外部命令:ls 查看外部命令帮助:ls --help 或者 man ls 或者 info ls3.man文档的类型(1~9) man 7 man man 5 passwd4.快捷键: ctrl c&…

按钮长按

2019独角兽企业重金招聘Python工程师标准>>> 用update来实现定时 //长按处理update: function (delta) {cc.log("update "delta);this.totalTimedelta;if(this.totalTime>TOUCH_LONG_TIMER_INVOKE){this.stopTimer();this.invokeTouchLong();}},stop…

php email 发送,php 发送 Email

require("mail/class.phpmailer.php");//调用$mail new PHPMailer();//实例化phpmailer$address "mailxi126.com";//接收邮件的邮箱$mail->IsSMTP(); // 设置发送邮件的协议:SMTP$mail->Host "smtp.163.com"; // 发送邮件的…

Git-如何将已存在的项目提交到git

1.首先在码云或者github上创建一个不带README.md的项目,然后复制远程库的地址(下面以码云为例):   2.进入本地已存在的项目目录:house    touch README.md //新建说明文件 git init //在当前项目目录中生成本地git…

Bash:字符串操作

参考:http://blog.csdn.net/finewings/article/details/5718133 字符串提取 去掉指定前缀 1. ${varible#pattern} 从头开始,左往右,删除最短的一个pattern结尾的字符串,即截取第一个pattern结尾子串之后的字符串 例…