讀取properties或yml檔案資料並匹配
阿新 • • 發佈:2019-01-07
使用springboot獲取配置的檔案的資料有多種方式,其中是通過註解@Value,此處通過IO獲取配置檔案內容。
此前已經在另外的test.xml檔案中的bean中可設定xx或yy,這裡實現如果test.xml檔案中沒有設定,可在application.*檔案中進行設定。如下:
try { InputStream stream = getClass().getClassLoader().getResourceAsStream("application.properties"); if(stream == null){ stream = getClass().getClassLoader().getResourceAsStream("application.yml"); InputStreamReader in = new InputStreamReader(stream, "gbk"); BufferedReader reader = new BufferedReader(in); String line; while ((line = reader.readLine()) != null) { if(line.trim().split(":")[0].contentEquals("xx")){ //在test.xml中讀取後可通過set傳值。這裡也可以自己通過設定相應引數的set方法進行傳值 this.setXX(line.trim().split(":")[1].trim()); }else if(line.trim().split(":")[0].contentEquals("yy")){ this.setYY(line.trim().split(":")[1].trim()); } } }else{ InputStreamReader in = new InputStreamReader(stream, "gbk"); BufferedReader reader = new BufferedReader(in); String line; while ((line = reader.readLine()) != null) { if(line.trim().split("=")[0].contentEquals("xx")){ //在test.xml中讀取後可通過set傳值。這裡也可以自己通過設定相應引數的set方法進行傳值 this.setXX(line.trim().split(":")[1].trim()); }else if(line.trim().split("=")[0].contentEquals("yy")){ this.setYY(line.trim().split(":")[1].trim()); } } } } catch (FileNotFoundException e) { logger.error("無法找到application.*檔案",e); } catch (IOException e) { logger.error("讀取配置檔案的ip或port有問題",e); }