通常情况下,我们会在一些配置文件文件中配置一些属性。如:

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项目中如何获取&设置配置文件中的属性的更多相关文章

  1. Java 获取*.properties配置文件中的内容 ,常见的两种方法

    import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...

  2. 普通 Java 项目转换为 Maven 项目

    普通 Java 项目转换为 Maven 项目 本文为原创文章,转载请注明出处.源码已分享至GitHub. 本文提供一个完整可行的将遗留项目转换为Maven项目的步骤.至于转换Maven构建项目的好处不 ...

  3. 如何用Eclipse将普通的JavaWeb项目转为Maven项目

    最新自己的第一个项目差不多稳定运行之后 想着将项目转为Maven项目.于是参考网上成功的将自己的普通的项目转为了maven项目,现在记录一下: 0.普通的java项目的结构如下: 1.接下来开始进行正 ...

  4. 一般项目转为Maven项目所遇到的问题

    最近搞CI,准备使用Maven,但以前的项目不是Maven项目,需要把项目转换为Maven项目.这遇到几个小问题,一是jar包的依赖,二是从本地仓库取出依赖jar包. 由于没有本地仓库,要手动添加ja ...

  5. 普通项目转为maven项目及相关操作说明

    普通项目转为maven项目及相关操作说明 1 原项目简述 如图,一般的项目大致包括三类路径:src,源码路径:test,单元测试路径:lib第三方类包路径. 示例项目中,BaseDao类依赖于mysq ...

  6. 在MyEclipse里连接Tomcat部署到项目(maven项目和web项目都适用)

    前提, Tomcat *的下载(绿色版和安装版都适用) Tomcat *的安装和运行(绿色版和安装版都适用) Tomcat的配置文件详解 在Eclipse里连接Tomcat部署到项目(maven项目和 ...

  7. Eclipse使用之将Git项目转为Maven项目, ( 注意: 最后没有pom.xml文件的, 要转化下 )

    Eclipse使用之将Git项目转为Maven项目(全图解) 2017年08月11日 09:24:31 阅读数:427 1.打开Eclipse,File->Import 2.Git->Pr ...

  8. 获取UWP配置文件中的版本信息

    原文:获取UWP配置文件中的版本信息 在一般的软件中,我们都会显示当前软件的版本信息.以前作者都是在发版的时候修改一下UWP的配置文件中的版本信息和软件中的版本信息.但是每次这样很麻烦,有时间忘记修改 ...

  9. Ubuntu14.04下Mongodb的Java API编程实例(手动项目或者maven项目)

    不多说,直接上干货! 若大家,不会安装的话,则请移步,随便挑选一种. Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04 ...

随机推荐

  1. SpringMVC基础学习(三)—参数绑定

    一.基本数据类型的绑定 页面 <form action="${pageContext.request.contextPath}/test.do" method="p ...

  2. MCDownloader(iOS下载器)说明书

    示例 前言 很多iOS应用中都需要下载数据,并对这些下载的过程和结果进行管理,因此我才有了写这个MCDownloader的想法.在IOS 文件下载器-MCDownloadManager这篇文章中,我使 ...

  3. 混合式app ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)

    1.ionic简介 为什么选用ionic: 彻底开源且免费 性能优异 基于红的发紫的AngularJs 漂亮的UI 强大的命令行(基于更热门的nodejs) 开发团队非常活跃 ngCordova,将主 ...

  4. 跟着刚哥梳理java知识点——面向对象(八)

    面向对象的核心概念:类和对象. 类:对一类事物描述,是抽象的.概念上的定义. 对象:实际存在的该类事物的每个个体,因而也成为实例(Instance). Java类及类的成员:属性(成员变量Field) ...

  5. WebGIS中使用ZRender实现前端动态播放轨迹特效的方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在地图上以时间轴方式播放人员.车辆在地图上的历史行进 ...

  6. ES6 对let声明的一点思考

    说到ES6的let变量声明,我估计很多人会想起下面几个主要的特点: 没有变量声明提升 拥有块级作用域 暂时死区 不能重复声明 很多教程和总结基本都说到了这几点(说实话大部分文章都大同小异,摘录的居多) ...

  7. URL解析器urllib2

    urllib2是Python的一个库(不用下载,安装,只需要使用时导入import urllib2)它提供了一系列用于操作URL的功能. urlopen urllib2.urlopen可以接受Requ ...

  8. php写流程管理

    流程控制即某个人发起一个流程,通过一层一层审核,通过后,完成整个流程,若有一层审核未通过,中断整个流程.即结束! 比如请假流程: 某一员工发起一个请假流程,那么这个流程的节点人员即他的上级,上上级,上 ...

  9. PHP的laravel框架后台实现数据导出excel的功能

    要想在PHP后台实现excel导入导出功能,一种简单有效的方法就是使用phpexcel插件. 要使用phpexcel插件,首先需要下载composer,这个工具是专门用来管理项目中库之间的依赖关系的. ...

  10. CF #312 E. A Simple Task 线段树

    题目链接:http://codeforces.com/problemset/problem/558/E 给一个字符串,每次对一个区间内的子串进行升序或者降序的排列,问最后字符串什么样子. 对于字符串排 ...