介绍
- 背景:在java开发中,往往需要自己定义配置文件、解析方式
- java类中,进行配置文件加载的类是:Properties
- Properties的是一个持久的属性值,可保存在流中,或者从流中加载。配置里的每个键值对,都是String类型
- Properties是一个线程安全的类,多个线程可共享同一个Properties对象:因为load和set操作,使用了syncronized修饰
加载方式:
- 方式1:文件系统加载
- 方式2:类加载器加载
- 方式3【第三方库,这里不做介绍】:使用apache的配置包:org.apache.commons.configuration
- 方式4:使用注解方式,待完成!!!
- 示例:
- 创建配置文件1:ref2.properties,放入到工程的resources目录下:
cat=reflect2.Cat bird=reflect2.Bird
- 创建配置文件2:ref2.yaml,放入到工程的resources目录下:
cat: reflect2.Cat bird: reflect2.Bird
- 创建测试代码:
class Main1 { public static void main(String[] args) throws IOException { // 方式1:文件系统加载: // 问题:文件系统加载的时候,不容易找到配置文件的路径 System.out.println("################### 方式1:文件系统加载: ###################"); FileInputStream fis1 = new FileInputStream( "/Users/zhaoyue/codes/springAopMaven/src/main/resources/ref2.properties"); Properties p1 = new Properties(); p1.load(fis1); System.out.println("获取cat的value:" + p1.getProperty("cat")); FileInputStream fis2 = new FileInputStream( "/Users/zhaoyue/codes/springAopMaven/src/main/resources/ref2.yaml"); Properties p2 = new Properties(