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