一、屬性文件以下:java
10001=錯誤
二、文件讀取主要代碼spring
// getResource方式 URL resourceURI = getClass().getClassLoader().getResource(""); // getResourceAsStream方式 InputStream stream = getClass().getClassLoader().getResourceAsStream("errorCode.properties"); logger.info(">>>>>>>>>>>>>>>>>>>>>> errorCode stream " + stream); logger.info(">>>>>>>>>>>>>>>>>>>>>> resourceURI " + resourceURI); if (null == stream) { logger.warn("errorCode.properties file not find"); return; } InputStreamReader reader = new InputStreamReader(stream,"UTF-8"); properties.load(reader); Enumeration<?> keys = properties.propertyNames(); while(keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = properties.getProperty(key); logger.info("key :" + key + "- value:" + value); }
2.1 使用idea啓動讀取測試maven
2.2 使用java -jar xxx.jar啓動測試ide
從運行結果來看,使用getResourceAsStream方式能夠讀到jar中的文件,而使用getResource讀取爲空,在jar文件中查找資源和在文件系統中查找資源的方式是不同的,儘可能使用Stream流的方式操做資源文件。spring-boot
使用spring-boot-maven-plugin插件打出的fat-jar是不能夠做爲其餘應用的jar依賴的,由於沒法向普通的依賴jar那樣去讀取jar中的一些文件,這個和spring-boot-maven-plugin打包機制有關,能夠換成使用maven-jar-plugin插件替換進行成可運行的的jar測試