本人是新手,在自學java web,再作一個練手項目時,在properties配置文件具體存放位置遇到了問題,現已基本解決,分享一下解決辦法,還請高手勿噴。 java
在程序中載入properties配置文件時,我先在只知道兩種辦法:1.是利用servlet中的servletContext獲得;2.是利用java類加載本地文件的方式獲得。下面來具體說一下兩種方法: web
//1. 首先介紹利用servletContext的方法,這種方法能夠直接將properties配置文件放在WebRoot目錄下 //讀取位於WebRoot中的userInfo.properties文件 //getResourceAsStream方法會以InputStream方式返回一個IO流 InputStream inputStream = this.getServletContext().getResourceAsStream("userInfo.properties"); //建立properties Properties properties = new Properties(); properties.load(inputStream); out.println("username " + properties.getProperty("username")); out.println("password " + properties.getProperty("password"));
//2. 下面介紹一下利用java類加載本地文件的方式 //須要注意的是properties文件的存放位置,我是放在classpath中的,也就Tomcat 7.0\webapps\項目名稱\WEB-INF\classes這個目錄下面。須要在本地文件夾中手動存放,若是在編譯器(我用的myeclipse)下面,是看不到這個目錄的。 //再說一下加載方法: InputStream in = getClass().getClassLoader().getResourceAsStream("userInfo.properties"); Properties properties = new Properties(); properties.load(in);
我猜測是由於src的.java文件被編譯到了class這個目錄下,因此想要找到配置文件,還須要將配置文件放在classs目錄下。也不知道對不對,還請高手解答。謝謝。 app
文章補充:在過了將近一個月之後,學習到struts2的時候,在李剛編寫的<輕量級Java EE企業應用實戰 第二版>一書中,介紹了在「Eclipse生成、部署web項目時,會自動將src路徑下除*.java外的全部文件都複製到web應用的classes路徑下」,因此,我認爲,關於property文件的存放位置,咱們也能夠使用該機制。直接在項目的src中新建property文件,這樣項目部署的時候,就能夠自動放在classes路徑下,而不須要手動的配置了。 eclipse