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"

*/

 

當然,考慮到windowslinux的兼容性,把  '/'換成‘\\’即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM