MyBatis-3.4.2-源码分析2:解析XML之settingsAsProperties(root.evalNode("settings"))

下面讲解settings的解析过程

private Properties settingsAsProperties(XNode context) {
		// 开始解析settings块
		// 判断是否为null
		if (context == null) {
			return new Properties();
		}
		// 继续处理
		Properties props = context.getChildrenAsProperties();
		//
		// Check that all settings are known to the configuration class
		// 执行到这里
		MetaClass metaConfig = MetaClass.forClass(Configuration.class, localReflectorFactory);
		//构造MetaClass完毕
		//遍历props的k/v
		for (Object key : props.keySet()) {
			//保证设置的k必须在Configuration里存在,也就是是它的1个字段
			if (!metaConfig.hasSetter(String.valueOf(key))) {
				throw new BuilderException(
						"The setting " + key + " is not known.  Make sure you spelled it correctly (case sensitive).");
			}
		}
		//返回
		return props;
	}
loadCustomVfs(settings);

上面这行不知道干嘛的,暂时跳过。

转载于:https://my.oschina.net/qiangzigege/blog/868001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值