code: public Resource getResource(final ResourceSelection selection) {
  		if (LOG.isTraceEnabled()) {
  			LOG.trace("定位资源：{}", selection);
  		}
  		String catalog = selection.getCatalog();
  		String version = selection.getVersion();
  		String name = selection.getName();
  
  		String path = catalog;
  		if (StringUtils.isNotBlank(version)) {
  			path = path + '/' + version;
  		}
  		while (true) {
  			try {
  				Resource resource = root.createRelative(path + '/' + name);
  				if (resource.exists()) {
  					if (LOG.isTraceEnabled()) {
  						LOG.trace("定位资源到：{}", resource);
  					}
  					return resource;
  				}
  			} catch (IOException e) {
  				LOG.warn(root.toString() + '/' + path + '/' + name + " 解析失败", e);
  				return null;
  			}
  			if (path.length() <= catalog.length()) {
  				break;
  			}
  			path = path.substring(0, path.lastIndexOf('/'));
  		}
  		if (LOG.isDebugEnabled()) {
  			LOG.debug("未找到资源：{}", selection);
  		}
  		return null;
  	}
docs: 定位资源。
  
  @param selection
  资源仓库选择
  @return 资源