Java项目和maven项目中如何获取&设置配置文件中的属性
通常情况下,我们会在一些配置文件文件中配置一些属性。如:


indexPath = E\:\\Tomcat_7.0\\webapps\\ipost_stage\\lucene\\index
imgUploadPath = E\:\\Tomcat_7.0\\webapps\\ipost_stage\\attachedImg
imgPath=http\://192.183.3.207/ipost_stage/attachedImg
adminEmail=
pageSize=5
normalImgSize=250
smallImgSize=100
通过打开编译后的classes目录(类路径目录)

那么可以通过工具类来实现对这个配置文件的读写。
首先建立一个常量类
/**
* 常量类
*/
public class ConfigConstants {
//系统编码
public static final String CHARSET = "UTF-8";
//系统配置文件的路径
public static final String SYSCONFIG_PATH = "/sysConfig.properties";
}
然后通过一个工具类类操作
package com.myProject.common;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.Properties;
import com.myProject.utils.DateUtils;
/**
* 读取公共的配置文件
*/
public class SysConfig {
private static Properties sysConfig = new Properties();
static { //读取配置文件
InputStream inputStream = SysConfig.class
.getResourceAsStream(ConfigConstants.SYSCONFIG_PATH);
try {
sysConfig.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//根据属性读取配置文件
public static String getProperty(String key){
return sysConfig.getProperty(key);
}
//根据属性写入配置文件
public static void setProperty(String key,String value){
sysConfig.setProperty(key, value);
}
}
测试类如下:
package com.myProject.test;
import com.myProject.common.SysConfig;
public class ConfigConstantTest {
public static void main(String[] args) {
String aa = SysConfig.getProperty("testConstant");
System.out.println(aa);
}
}
结果为:66
如果在maven项目中,常量类和工具类,测试类不变。唯一要变的就是系统配置文件的路径。那么怎么判断这里路径怎么写呢?
唯一的判断依据就是编译后的路径位置。
在非maven项目中,直接看classes中的文件相对位置:
/sysConfig.properties就是直接定位到classes目录,然后在此目录中寻找sysConfig.properties文件。
在maven项目中,则需要build之后看target目录中的classes目录,然后在此目录中寻找sysConfig.properties文件。

当然,方法有相对路径和绝对路径两种。
绝对路径:
则是这么配置:
|
/** * 绝对路径配置:SYSCONFIG_PATH "/com/hori/bigData/resources/config.properties" */ |
相对路径是相对于常量类而言的,则是这么配置:
|
/** * 相对路径配置:SYSCONFIG_PATH = "..\\resources\\config.properties" */ |
当然,考虑到windows和linux的兼容性,把 '/'换成‘\\’即可
Java项目和maven项目中如何获取&设置配置文件中的属性的更多相关文章
- Java 获取*.properties配置文件中的内容 ,常见的两种方法
import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...
- 普通 Java 项目转换为 Maven 项目
普通 Java 项目转换为 Maven 项目 本文为原创文章,转载请注明出处.源码已分享至GitHub. 本文提供一个完整可行的将遗留项目转换为Maven项目的步骤.至于转换Maven构建项目的好处不 ...
- 如何用Eclipse将普通的JavaWeb项目转为Maven项目
最新自己的第一个项目差不多稳定运行之后 想着将项目转为Maven项目.于是参考网上成功的将自己的普通的项目转为了maven项目,现在记录一下: 0.普通的java项目的结构如下: 1.接下来开始进行正 ...
- 一般项目转为Maven项目所遇到的问题
最近搞CI,准备使用Maven,但以前的项目不是Maven项目,需要把项目转换为Maven项目.这遇到几个小问题,一是jar包的依赖,二是从本地仓库取出依赖jar包. 由于没有本地仓库,要手动添加ja ...
- 普通项目转为maven项目及相关操作说明
普通项目转为maven项目及相关操作说明 1 原项目简述 如图,一般的项目大致包括三类路径:src,源码路径:test,单元测试路径:lib第三方类包路径. 示例项目中,BaseDao类依赖于mysq ...
- 在MyEclipse里连接Tomcat部署到项目(maven项目和web项目都适用)
前提, Tomcat *的下载(绿色版和安装版都适用) Tomcat *的安装和运行(绿色版和安装版都适用) Tomcat的配置文件详解 在Eclipse里连接Tomcat部署到项目(maven项目和 ...
- Eclipse使用之将Git项目转为Maven项目, ( 注意: 最后没有pom.xml文件的, 要转化下 )
Eclipse使用之将Git项目转为Maven项目(全图解) 2017年08月11日 09:24:31 阅读数:427 1.打开Eclipse,File->Import 2.Git->Pr ...
- 获取UWP配置文件中的版本信息
原文:获取UWP配置文件中的版本信息 在一般的软件中,我们都会显示当前软件的版本信息.以前作者都是在发版的时候修改一下UWP的配置文件中的版本信息和软件中的版本信息.但是每次这样很麻烦,有时间忘记修改 ...
- Ubuntu14.04下Mongodb的Java API编程实例(手动项目或者maven项目)
不多说,直接上干货! 若大家,不会安装的话,则请移步,随便挑选一种. Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04 ...
随机推荐
- Linux常用命令List
参考<linux命令行大全> 一.文件命令 cd - 切换为之前目录 wc -l -w file cmd --help apropos keyword apropos cpu > t ...
- ios富文本的简单使用 AttributedString
富文本,顾名思义就是丰富的文本格式,本文demo使用NSMutableAttributedString //获取富文本 NSMutableAttributedString*attributeStrin ...
- Linux:一位猫奴的意外产物
作者:Vamei,严禁任何形式转载. 1991年年中,林纳斯·托瓦兹(Linus Torvalds)在自己房间里敲着键盘.他全神贯注地盯着14寸的黑色屏幕,都没感觉到自己的小猫Randi在扒自己的裤腿 ...
- Broker节点
在druid集群环境中 broker节点的作用是查询.它知道metadata 通过zookeeper发送到了集群中的哪个节点,从而能够准确的查询到.broker也把各个节点的结果汇聚到一个节点中.On ...
- 日志框架SLF4J
1.什么是SLF4J SLF4J:Simple Logging Facade for Java,为java提供的简单日志Facade.Facade门面,更底层一点说就是接口.它允许用户以自己的喜好,在 ...
- 网站启用gzip压缩
gzip压缩启用不启用还是要看实际情况的,启用gzip后可以相应的减轻带宽压力但是同时也会增加cpu的压力(压缩解压),相反的如果不启用那么cpu压力也会相应的减少,具体情况具体分析. Linux开启 ...
- 将Excle中的数据批量导入数据库
namespace 将Excle中的数据批量导入数据库{ class Program { static void Main(string[] args) { S ...
- ActiveMQ学习心得:连接池的简单实现和模板模式的应用
一.安装activemq 下载地址:https://archive.apache.org/dist/activemq/5.13.0/apache-activemq-5.13.0-bin.zip 下载完 ...
- 对于Bootstrap的介绍以及如何使用
Bootstrap是HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 可以自动适配任何设备,解决了响应式实现的繁琐问题,可以修改其中的各种样式,同样,其内部功能的强 ...
- ThinkPHP 框架模型
1 在MainController.class.php 控制器中有一个test的方法,同时还有一个deng的方法,我想在test方法中使用deng方法 表示为 <?php namespace ...