讀取web項目properties文件路徑 解決tomcat服務器找不到properties路徑問題


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的調用例子截圖

 


免責聲明!

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



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