代码拉取完成,页面将自动刷新
同步操作将从 huifer/Code-Analysis 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
SystemEnvironmentPropertySource
继承MapPropertySource
其 source 还是一个 map 结构. 在了解这点后我们进行方法分析@Override
@Nullable
public Object getProperty(String name) {
// 解析属性名称
String actualName = resolvePropertyName(name);
if (logger.isDebugEnabled() && !name.equals(actualName)) {
logger.debug("PropertySource '" + getName() + "' does not contain property '" + name +
"', but found equivalent '" + actualName + "'");
}
// 从 map 中获取
return super.getProperty(actualName);
}
resolvePropertyName
解析属性名称
protected final String resolvePropertyName(String name) {
Assert.notNull(name, "Property name must not be null");
// 验证属性名称
String resolvedName = checkPropertyName(name);
// 不为空返回
if (resolvedName != null) {
return resolvedName;
}
// 大写
String uppercasedName = name.toUpperCase();
// name 是否等价于大写
if (!name.equals(uppercasedName)) {
// 验证属性名称
resolvedName = checkPropertyName(uppercasedName);
// 返回
if (resolvedName != null) {
return resolvedName;
}
}
return name;
}
这段代码中出现了 属性验证的函数checkPropertyName
对此进行查阅
@Nullable
private String checkPropertyName(String name) {
// Check name as-is
// 是否存在
if (containsKey(name)) {
return name;
}
// Check name with just dots replaced
// 将名称中 . 替换成 _ 是否存在
String noDotName = name.replace('.', '_');
if (!name.equals(noDotName) && containsKey(noDotName)) {
return noDotName;
}
// Check name with just hyphens replaced
// 将名称中 - 替换成 _ 是否存在
String noHyphenName = name.replace('-', '_');
if (!name.equals(noHyphenName) && containsKey(noHyphenName)) {
return noHyphenName;
}
// Check name with dots and hyphens replaced
// 替换 . 和 - 都转换为 _ 判断是否存在
String noDotNoHyphenName = noDotName.replace('-', '_');
if (!noDotName.equals(noDotNoHyphenName) && containsKey(noDotNoHyphenName)) {
return noDotNoHyphenName;
}
// Give up
return null;
}
private boolean containsKey(String name) {
return (isSecurityManagerPresent() ? this.source.containsKey(name) : this.source.containsKey(name));
}
protected boolean isSecurityManagerPresent() {
return (System.getSecurityManager() != null);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。