springboot加载配置文件有很多种方法,我主要说一下之前的通过Properties类加载自定义配置文件的
,其他的加载配置文件的方式可以参考https://www.cnblogs.com/moonandstar08/p/7368292.html
自定义配置文件的文件目录resource目录下
加载类
public class CommonProperties2 {
private static Map<String, String> map = new HashMap<>();
private static Properties pro = new Properties();
static{
InputStream in = null;
try {
ClassPathResource resource = new ClassPathResource("common.properties");
in=resource.getInputStream();
//解决中文乱码
BufferedReader bf = new BufferedReader(new InputStreamReader(in, "UTF-8"));
pro.load(bf);
in.close();
bf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getProperty(String key) {
return pro.getProperty(key);
}
public static Map<String, String> getPropertyMap() {
pro.keySet().forEach(item->{
map.put(item.toString(),pro.getProperty(item.toString()));
});
return map;
}
}
应用启动后,会将配置文件中的键值对数据存放到map中,
获取数据方式:
CommonProperties2 .getProperty(key)
问题:我刚开始是通过ResourceUtils.getFile("classpath:common.properties")
加载我自定义的配置文件的,发现在idea上面运行没有问题,但是打包后,就报错不能发现common.properties,之后搜了一下发现使用 ClassPathResource resource = new ClassPathResource("common.properties");
这个可以,记录一下