springboot读取属性文件比spring要简单的多,一般是两种方法,一种是注解的方法,还有一种是创建一个属性类的实体。
这两种方法都很简单,都能起到读取属性文件的作用,但是今天来讲一种采用java原生代码来读取属性文件
当springboot打成jar包的时候,路径就会发生变化,类加载器的读取路径也会发生变化。
遇到的坑:
Object.class.getClassLoader(),会返回null;(这个在不打成jar包的时候,也是null):
解决方法:
用具体的类来加载,别用Object来加载
CodeConfig.class.getClassLoader()
遇到的坑:
Object.class 会返回null;(这个在不打成jar包的时候,是正常的,不会返回null)
解决方法:
用具体的类来加载,别用Object来加载
CodeConfig.class
特别注意:
用class或者getClassLoader()需要注意两点
class.getClassLoader().getResourceAsStream("app.properties") 这个不能有 / 表示在类的根目录里找
class.getResourceAsStream("/app.properties") 这个要 / 表示在类的根目录里找,没有 / 表示在类的同级目录里找