您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“java怎么實(shí)現(xiàn)web項目啟動加載properties屬性文件”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
web項目啟動加載properties屬性文件
1、首先要想在項目啟動的時候就加載properties文件
2、在web.xml文件中配置好了監(jiān)聽器之后
3、當(dāng)然為了不讓項目啟動報錯
4、文件建好之后
出現(xiàn)加載java的properties配置文件空指針報錯
解決
最近做項目,發(fā)現(xiàn)框架里面封裝的項目一啟動加載所有的properties文件挺方便好用的就自己動手寫了一個.
就必需在web.xml中配置一個加載properties文件的監(jiān)聽器(listener);
<!-- Properties文件的監(jiān)聽器 --> <listener> <description>ServletContextListener</description> <listener-class>com.lvqutour.utils.PropertyFileUtils</listener-class> </listener>
接下來我們就要實(shí)現(xiàn)監(jiān)聽器中的類com.lvqutour.utils.PropertyFileUtils,本人做的方法是將該類實(shí)現(xiàn)ServletContextListener接口,主要然后主要是重寫里面的init方法,現(xiàn)在項目啟動的時候就會加載application.local.properties文件了.
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * Created with IntelliJ IDEA. * Date: 2018/3/13 13:06 * User: pc * Description:自定義properties文件讀取工具類 */ public class PropertyFileUtils implements ServletContextListener { private static Properties prop = new Properties(); @Override public void contextInitialized(ServletContextEvent sce) { InputStream inputStream; try { inputStream = getClass().getResourceAsStream("/XXX.properties"); if(inputStream != null){ prop.load(inputStream); } } catch (IOException ex) { ex.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent sce) { } public static String get(String params){ return prop.getProperty(params); } }
我們必需在項目的resources中新建一個XXX.properties文件.
#微信支付相關(guān) #密鑰 KEY = longshengwenhuaweixiangmingWXpay #連接超時時間(毫秒) CONNECT_TIME_OUT = 10000
我們這時要在其他類中獲取該文件的路徑,這樣大家可以回過頭來看一下在PropertyFileUtils類中有一個get()方法,這就是為給其他類獲取文件中的屬性提供的方法.其中params為.properties文件的鍵.
String key = PropertyFileUtils.get("KEY");//密鑰 int CONNECT_TIME_OUT = Integer.parseInt(PropertyFileUtils.get("CONNECT_TIME_OUT"));//連接超時時間
項目啟動加載屬性文件有對我們獲取屬性文件中的屬性打非常方便不用每次都要去建流,然后去讀屬性文件.
PS:如果是在Controller里需要獲取resource.properties里的值,可直接使用@value注解:
@Value("${KEY}") private String key;//密鑰 @Value("${CONNECT_TIME_OUT}") private int CONNECT_TIME_OUT;//連接超時時間
剛開始把properties配置文件放在了與引用它的java文件并列的src下自定義的文件包下面, 結(jié)果一直都報空指針異常, 找不到路徑
后來移動到src根目錄下面就ok了...應(yīng)該是一種配置文件的規(guī)定吧...
“java怎么實(shí)現(xiàn)web項目啟動加載properties屬性文件”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。