1. 程式人生 > >讀取properties或yml檔案資料並匹配

讀取properties或yml檔案資料並匹配

使用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);
            }