配置属性以及路径之类的初始化的时候读取数据库的数据

/**
 * 系统配置初始化
 * 基础类型和字符串类型属性可自动从数据库中读取匹配
 * 其他类型会被忽略
 */
public void init() {
   config = new AppConfig();
   Map<String, String> configs = new HashMap<String, String>();

   for (SystemConfig config : systemConfigMapper.findAll()) {
      configs.put(config.getId(), config.getValue());
   }
   
   Field[] fields = config.getClass().getDeclaredFields();
   
   for (Field field : fields) {
      if (field.getType().isPrimitive() || field.getType().equals(String.class)) {
         String key = field.getName();
         
         if (configs.containsKey(key)) {
            try {
               ReflectionUtils.makeAccessible(field);
               
               if (field.getType().equals(boolean.class)) {
                  field.set(config, "true".equalsIgnoreCase(configs.get(key)));
               } else if (field.getType().equals(int.class)) {
                  field.set(config, Integer.parseInt(configs.get(key)));
               } else {
                  field.set(config, configs.get(key));
               }
               
               logger.info("配置参数:{}={}", key, field.get(config));
            } catch (Exception e) {
               logger.error("配置参数{}出错!", key, e);
            }
         }
      }
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值