给你的JAVA程序配置参数(Properties的使用)
我们在写JAVA程序时,很多时候运行程序的参数是需要动态改变的
测试时一系列参数,运行时一系列参数
又或者数据库地址也需要配一套参数,以方便今后的动态部署
这些变量的初始化,我们在写小DEMO时完全可以写死在JAVA文件中
但程序需要发布或者局部部署时,这些参数就需要脱离程序代码了
我们有多种存放参数的方式,比如数据库、XML文件又或者直接是txt文件
现在介绍一种使用JAVA,简单方便的参数读取方式
.properties文件,我们并不陌生,很多优秀的框架中就能看到它的存在,比如Hibernate
在src文件目录下,新建一个后缀为.properties的文件,用任意文本编辑器打开它,就可以使用键值对的方式设置您程序的运行参数了
类似于这样
#wangqun fd60e46db0dc119cfea740c3375fd7c4
#toAccountId=fd60e46db0dc119cfea740c3375fd7c4
#huangshi 1645a78135328c4b
toAccountId=1645a78135328c4b
#tangwei 6c0f7514f4bd0016
#shixiaoping 98f30bad9e6789af
#toAccountId=6c0f7514f4bd0016
#toAccountId=6c0f7514f4bd0016,1645a78135328c4b,98f30bad9e6789af #cron=0 32 8-11,14-20/1 * * ?
cron=0/10 * * * * ? fileName=d\:/\u59DC\u5830\u5468\u79EF\u5206\u7BA1\u63A7\u53CA\u53CC\u767E\u5146\u8BAD\u7EC3\u84250830.xlsx
sheetName=\u6C47\u603B
fromIndex=0,1
toIndex=48,12
#fromIndex=1,4
#toIndex=13,12 dirPath=C:/apache-tomcat-8.0.28/webapps/test/
urlPath=http://61.132.43.176:8081/test/ database_host=132.240.9.36
database_port=1521
database_user=jy
database_name=yxdb
database_pwd=OVQwu8QSm4CWktEZdnjtxg== sql_str=select * from hs_bb_rbb r order by r.no
modify_sheet=sheet1
modify_from=1,0
time_cell=1,4
注意一下几点:
一、用#号表示注释,可以多录入一些配置可能,运行时动态注释或者打开,比较方便
二、.properties明文存储,所以敏感字符需要加密,比如数据的密码
三、遇到中文,是个棘手的问题,最简单的方式是使用MyEclipse的properties文件编辑器来写入,会自动将中文转码
四、所有参数只可以以字符串形式存储,至于类型转换,请在JAVA中解析完成
五、适用于只读不写的参数配置,如果程序运行过程中需要修改这些环境参数,建议考虑数据库读写方式,而不是properties
下面是JAVA程序,mian函数一开始就可以对这个properties文件进行读取
public static void main(String[] args) throws Exception{
//读取properties配置文件
Properties prop=new Properties();
prop.load(QuartzDemo.class.getResourceAsStream("/set.properties"));
String cron=prop.getProperty("cron","0/10 * 8-7 * * ?");
String fileName=prop.getProperty("fileName","d:/2014年1月营销活动报表140116.xlsx");
String sheetName=prop.getProperty("sheetName", "支局视图");
String dirPath=prop.getProperty("dirPath","C:/apache-tomcat-8.0.28/webapps/test/");
String urlPath=prop.getProperty("urlPath","http://61.132.43.176:8081/test/");
String fromIndexStr=prop.getProperty("fromIndex","0,0");
String toIndexStr=prop.getProperty("toIndex", "17,20");
String database_host=prop.getProperty("database_host","");
String database_port=prop.getProperty("database_port","");
String database_user=prop.getProperty("database_user","");
String database_name=prop.getProperty("database_name","");
String database_pwd=DESHelper.decrypt(prop.getProperty("database_pwd",""),"newflypig");
String sql_str=prop.getProperty("sql_str","");
String modify_sheet=prop.getProperty("modify_sheet","");
String modify_fromStr=prop.getProperty("modify_from","0,0");
String[] splitStr=fromIndexStr.split(",");
int[] fromIndex={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
splitStr=toIndexStr.split(",");
int[] toIndex={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
splitStr=modify_fromStr.split(",");
int[] modify_from={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
}
Properties类提供了非常便捷的读取properties文件的操作,还包括一些默认值的配置,再次需要注意的是,只能读String,如果遇到其他数据类型,聪明的你一定知道怎样用String类型转换这些类型吧。
给你的JAVA程序配置参数(Properties的使用)的更多相关文章
- java程序启动参数-D含义详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt407 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: S ...
- Java程序运行参数
Java主函数形式:public static void main(String[] args){......} 也就是说可以向Java程序传递一个String[]. 1.在IDEA中debug.ru ...
- java程序启动参数
例如 启动进程如下 /home/work/noah/ccs/jc-controller/jdk1.7.0_55/bin/java -Xmx4096m -Xms4096m -Xmn1024m -XX:+ ...
- liunx 定时任务执行java程序配置流程
java jar包使用build fat jar进行打包 ------------------liunx任务创建--------------------------- 1.查看现有任务计划: cron ...
- java -jar 配置参数写法说明
java -Dxxx=test -jar xxx.jar (放在-jar之前) 取值:System.getProperty("xxx") spring的@value(" ...
- 图说hibernate注释--java里配置参数(一.1)
**************************************************************[来自我另一博文]
- Maven编译Java程序配置
Hive 需要在工程里添加的Jar包: hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar $HIVE_HOME/lib/hive-exe ...
- 第一次尝试学习java 安装jdk 与配置环境变量 写第一个java程序 并运行
第一次学习java,今天知道了java之父叫 詹姆斯.高司令 其它的记不住太多,首先我们先来安装jdk 百度搜索jdk12 (现在的jdk为12版本)安装稳定版 找到javaSE12X.. 下 ...
- 一劳永逸Java环境配置,以及编写我的第一个Java程序
Java环境配置,以及编写我的第一个Java程序 配置步骤 1.下载jdk 2.安装步骤 3.配置环境 4.我的第一个Java程序 配置步骤 网上的教程有很多,方法也都不尽相同.今天我就分享一下我的配 ...
随机推荐
- NodeJS -Express 4.0 用include取代partial
在Express 4.0 下按如下方法设置: (1)运行cmd 输入:npm install express-partials -g (2)下载成功后.在app.js 中引用此插件 var par ...
- Java 8 VM GC Tunning Guide Charter 7-8-b
第七章 并发gc Java 8提供两种并发gc,CMS和G1 Concurrent Mark Sweep (CMS) Collector This collector is for applicati ...
- WPF 多线程处理(4)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 开始一个线程处理读取的文件并且更新到list ...
- Oppotunity land---China
China is a land of opportunity.Following the development of China,every sector has made their contri ...
- 我的第一个python爬虫程序
程序用来爬取糗事百科上的图片的,程序设有超时功能,具有异常处理能力 下面直接上源码: #-*-coding:utf-8-*- ''' Created on 2016年10月20日 @author: a ...
- H5下拉刷新特效demo,动画流畅
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 利用Multi-Probe LSH构建ANN高维索引
感谢大神们的无私奉献精神........因此笔者要坚持开源,专注开源,开源就像在HPU的考试中不像其他人作弊一样,长远来看,会有巨大收获. 一.背景介绍 1.1 相似性搜索简介 高维相似性搜索在音频. ...
- C# 读取枚举描述信息实例
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using Syste ...
- Oracle 10G 安装后 不能卸载, 不能打开Web管理....
1. 不能卸载. 点击这个卸载. 提示: 解决方法: 右键卸载, 设置兼容性为XP. 就可以使用了. 2. oracle10g登录em后,提示"java.lang.Except ...
- Silverlight弹出层(转载)
ChildWindow为Silverlight中的弹出子窗口 可以在项目新建子窗口文件: 相互传值: //父窗体向子窗体传值,需要在ChildWindow中构造函数进行传值ChildWindowTes ...