最近也觉得应该仔细的看一下Hadoop的源代码了,以前只是懂得基本的架构了使用,最近在做一个系统,觉得很多东西可以借鉴MapReduce的可扩展性。但是当我们的系统的0.1版本出现的时候才发现我们的配置上很混乱。于是我自己的看了一下Hadoop的Configuration类,真的觉得Hadoop的配置是值得借鉴的,学到了很多!下面是Configuration类的属性清单:
Log是记录日志的对象。quietmode对应的是配置信息加载过程中是否属于静默的模式,如果处于静默的模式下,则在配置信息加载的过程中的一些信息不会被记录在日志中,默认情况是设置为true的。resources是一个对象数组,用于存放有关包含配置信息的对象。finalParameter是所有配置值被声明为final的变量的一个集合。loadDefault从表面字段上可以理解为是否要加载默认的配置。REGISTRY是一个WeakHashMap,用于多有个对象的相关配置的注册对它们进行管理,弱哈希可以自动清除不在正常使用的键对应的条目。defaultResources是一个CopyOnWrite的字符串数组,用于存储默认的配置资源名或者路径。{…}是一个静态初始化块,用于加载默认的配置资源。properties存储的是Configuration对象中的全部配置信息,它的类型是Properties的,这个类型是Java提供的对KV配置的一个属性集,提高了对KV配置参数的存储和操作方法。overlay则是进行覆盖的属性。classLoader主要是用于配置冲根据配置的参数构造相应的对象实例时提供上下文环境的类加载器。varPat是一个对含有环境变量的值的进行转换的正则表达式对象,比如我们设定的一个路径变量的值为$HO