我们在写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,1toIndex=48,12#fromIndex=1,4#toIndex=13,12dirPath=C:/apache-tomcat-8.0.28/webapps/test/urlPath=http://61.132.43.176:8081/test/

database_host=132.240.9.36database_port=1521database_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,0time_cell=1,4

注意一下几点:

一、用#号表示注释,可以多录入一些配置可能,运行时动态注释或者打开,比较方便

二、.properties明文存储,所以敏感字符需要加密,比如数据的密码

三、遇到中文,是个棘手的问题,最简单的方式是使用MyEclipse的properties文件编辑器来写入,会自动将中文转码

四、所有参数只可以以字符串形式存储,至于类型转换,请在JAVA中解析完成

五、适用于只读不写的参数配置,如果程序运行过程中需要修改这些环境参数,建议考虑数据库读写方式,而不是properties

下面是JAVA程序,mian函数一开始就可以对这个properties文件进行读取

public static void main(String[] args) throwsException{//读取properties配置文件

Properties prop=newProperties();

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 配置参数_给你的JAVA程序配置参数(Properties的使用)相关推荐

  1. 易语言支持库配置闪退丨支持库配置崩溃_易语言打开支持库配置就闪退怎么办?

    易语言支持库配置闪退打不开怎么办? 易语言支持库配置闪退解决方法丨支持库配置崩溃_易语言打开支持 易语言支持库配置闪退丨支持库配置崩溃_易语言打开支持库配置就闪退怎么办? 很多人都遇到过 打开易语言支 ...

  2. java创建对象new后面为啥可以传入参数_来复习一下Java的对象知识

    Java中的对象 现在让我们深入了解什么是对象.看看周围真实的世界,会发现身边有很多对象,车,狗,人等等.所有这些对象都有自己的状态和行为. 拿一条狗来举例,它的状态有:名字.品种.颜色,行为有:叫. ...

  3. java获取vm运行参数_如何获取在Java中运行Java VM的版本?

    java获取vm运行参数 To get the version of running VM (Virtual Machine) in Java, we use the getProperties() ...

  4. java获取vm运行参数_如何获取在Java中运行Java VM的名称?

    java获取vm运行参数 To get the name of running VM (Virtual Machine) in Java, we use the getProperties() met ...

  5. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  6. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  7. springboot 获取application参数_(最新 9000 字 )Spring Boot 配置特性解析

    一.概述 目前Spring Boot版本: 2.3.4.RELEASE,这更新的速度也是嗖嗖的了,随着新版本的发布,也一步步针对公司基础组件进行了升级改造,其中很重要的一块就是配置文件的更新(虽然目前 ...

  8. java future用法_纯干货:Java学习过程中的21个知识点和技术点

    我们在Java学习过程中要学会抓重点,善于总结,Java学习过程中常见的21个知识点和技术点你知道吗?下面和千锋广州小编一起来看看吧! 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识 ...

  9. java架构师_成为一名Java高级架构师究竟要学哪些东西??

    Java架构师,应该算是一些Java程序员们的一个职业目标了吧.很多码农码了五六年的代码也没能成为架构师.那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力 ...

最新文章

  1. npm run build生成路径问题
  2. 利用Landsat8 进行利用土地分类
  3. nginx处理http(http变量篇)
  4. iOS 动画基础总结篇
  5. (4.28)for xml path 在合并拆分上的作用演示
  6. TestNG中使用监听
  7. 一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?...
  8. oracle中的fetchsize,oracle setFetchsize() 优化查询速度
  9. Python模块_json pickle模块
  10. ios音乐播放器使用综述
  11. PySpark-Recipes : RDD对象的基本操作
  12. 14.msql_python
  13. WIN10开启Hyper-V虚拟化功能
  14. mysql判断字符串长度 超出用省略号_divcss超出长度文字自动隐藏或用省略号表示...
  15. 架构师培训,如何低成本体系性学习? + 最佳实践架构师+自学+老师型:
  16. android小说阅读、MVP + RxJava + Retrofit项目、证件拍照裁剪、蓝牙锁等源码器
  17. PHP应用-一揽子解决方案
  18. Cisco Firepower 1000 Series FTD Software 7.1.0 ASA Software 9.17.1 下载
  19. php7 mysql防注入_php如何防sql注入?
  20. 无法使用rsync同步文件到群晖解决方案

热门文章

  1. 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]
  2. 如何在 ASP.NET MVC 中集成 AngularJS
  3. Django03: django加入APP
  4. C/C++笔试面试题目(2021最新版)
  5. Android之用tcpdump常用抓包命令使用总结
  6. Hook API (C++)
  7. Android之AsyncTask异步任务详解总结
  8. tensorflow去掉某一维度_在Python中解压缩(取消堆栈)一个输入(占位符),在tensorflow中有一个None维度...
  9. 为什么饮料瓶大都是圆的,牛奶盒却是方的?原因你想不到
  10. 培养有见识的孩子,这6部适合孩子的纪录片,在家也能涨知识!