MyBatis整合Spring的实现(18)

例子java

同一个命名空间,可是有2个配置文件,A配置文件依赖于B配置文件信息,可是在加载时,先加载B配置文件的话,那么就会报错,前面章节已经捕获了此异常并把相应的配置添加到Configuration(全局配置类)中,这里就是在加载A配置文件后,再次加载B配置文件,也就把B配置信息添加到Configuration(全局配置类)里,下面就来看一下代码吧apache

1 方法parsePendingResultMapssession

private void parsePendingResultMaps() {
    Collection<ResultMapResolver> incompleteResultMaps = configuration.getIncompleteResultMaps();
    synchronized (incompleteResultMaps) {
      Iterator<ResultMapResolver> iter = incompleteResultMaps.iterator();
      while (iter.hasNext()) {
        try {
          iter.next().resolve();
          iter.remove();
        } catch (IncompleteElementException e) {
          // ResultMap is still missing a resource...
        }
      }
    }
}

2 方法parsePendingChacheRefsui

private void parsePendingChacheRefs() {
  Collection<CacheRefResolver> incompleteCacheRefs = configuration.getIncompleteCacheRefs();
  synchronized (incompleteCacheRefs) {
      Iterator<CacheRefResolver> iter = incompleteCacheRefs.iterator();
      while (iter.hasNext()) {
          try {
              iter.next().resolveCacheRef();
              iter.remove();
          } catch (IncompleteElementException e) {
              // Cache ref is still missing a resource...
          }
      }
  }
}

3 方法parsePendingStatements
spa

private void parsePendingStatements() {
  Collection<XMLStatementBuilder> incompleteStatements = configuration.getIncompleteStatements();
  synchronized (incompleteStatements) {
      Iterator<XMLStatementBuilder> iter = incompleteStatements.iterator();
      while (iter.hasNext()) {
          try {
              iter.next().parseStatementNode();
              iter.remove();
          } catch (IncompleteElementException e) {
              // Statement is still missing a resource...
          }
      }
  }
}

以上3个方法就是由于加载顺序错误的重复处理逻辑,加载的代码与前面同样,这里再也不分析。
code

总结ci

以上文章就是MyBatis对配置文件的初始化,这里至少分析了60%,对理解MyBatis已经够了。MyBatis也就剩最后一步了,创建SqlSessionFactory工厂,这个工厂也是惟一的,MyBatis默认使用的是org.apache.ibatis.session.defaults.DefaultSqlSessionFactory类。这里之后在分析。rem

相关文章
相关标签/搜索