Java 通用配置
(三)用户配置实现
本系列参考实现:
config: 参数配置,支持按版本设置默认值,支持用户覆盖默认配置,支持环境变量和系统变量,支持Spring配置
https://github.com/mybatis-mapper/config
用户配置
用户和版本配置都需要读取文件,但是两者的难度相差很大,本节先来看看用户配置的设计和实现。
抽象类定义
这里的用户配置是一个抽象实现,当具体模块需要使用时需要继承该类进行实现,抽象类中定义了一定的规范和实现,下面先看抽象类的定义:
public abstract class UserConfig implements Config { public static final Logger log = LoggerFactory.getLogger(UserConfig.class); public static final String FILE_TYPE = ".properties"; protected volatile Properties properties; @Override public int getOrder() { return USER_ORDER; } /** * 获取文件名对应的 key */ protected abstract String getConfigKey(); /** * 获取默认配置名 */ protected abstract String getConfigName(); /** * 跳过读取指定的 key * * @param key 属性 */ protected boolean skipKey(String key) { return getCon