讀取web專案properties檔案路徑 解決tomcat伺服器找不到properties路徑問題

我是壞男孩發表於2016-10-26

1.需求:有時候我們產品經理給我們的需求是會不斷變化的,例如數量是1000現在變成500,我們不可以去改程式碼吧,這樣很麻煩,所以就可以改配置檔案properties(這個資料庫連結一樣),當然也有json格式的配置,我們暫不討論

2.經歷:先看圖

(1)我之前以為直接在src建立system.properties然後

package cs.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
/**
* 
* @author JJ
*
*/
public class SetSystemProperty {
//屬性檔案的路徑 
static String profilepath="src/system.properties"; 
/** 
* 採用靜態方法 
*/ 
private static Properties props = new Properties(); 
static { 
try { 
props.load(new FileInputStream(profilepath)); 
} catch (FileNotFoundException e) { 
e.printStackTrace(); 
System.exit(-1); 
} catch (IOException e) { 
System.exit(-1); 
} 
} 

/** 
* 讀取屬性檔案中相應鍵的值 
* @param key 
* 主鍵 
* @return String 
*/ 
public static String getKeyValue(String key) { 
return props.getProperty(key); 
} 

}

  

(2)做個測試

package cs.util;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       SetSystemProperty property=new SetSystemProperty();
       String name=property.getKeyValue("name");
       System.out.println(name);
	}

}

  確實可以列印正確值,但是我部署到伺服器(tomcat)裡面就找不到配置檔案路徑,暈

3、解決方法

(1)配置檔案不變暫放在src下面,修改類

package cs.util;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
 * 
 * @author JJ
 *
 */
public class SetSystemProperty {
	static Properties   props;
    public  void GetDBConfigStr()
	{
		   props   =  new  Properties();
		InputStream in;
		try{
			 in=this.getClass().getResourceAsStream("/system.properties");  
		   	 props.load(in);
		}
		 catch(Exception e)
		{
			 System.out.print(e.getMessage());
			 return ;
		}
		if(props.isEmpty())
		{
			 return;
		}
	}
    public String getValueByKey(String key)
    {
		return props.get(key).toString();
    	
    }
   
	public SetSystemProperty() {
		super();
		GetDBConfigStr();
	}
  
}

(2)在web專案中後臺java的呼叫例子截圖

 

相關文章