您的位置:首页 > 其它

mybatis源码解析(一)加载资源文件

2016-11-25 11:13 549 查看
1、通过Resources加载资源文件

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

SqlSessionFactory factory = builder.build(Resources.getResourceAsStream("SqlMapperConfig.xml"));

public static InputStream getResourceAsStream(ClassLoader loader, String resource) throws IOException {

    InputStream in = classLoaderWrapper.getResourceAsStream(resource, loader);

    if (in == null) {

      throw new IOException("Could not find resource " + resource);

    }

    return in;

  }

classLoaderWrapper

InputStream getResourceAsStream(String resource, ClassLoader[] classLoader) {

    for (ClassLoader cl : classLoader) {

      if (null != cl) {

        // try to find the resource as passed

        InputStream returnValue = cl.getResourceAsStream(resource);

        // now, some class loaders want this leading "/", so we'll add it and try again if we didn't find the resource

        if (null == returnValue) {

          returnValue = cl.getResourceAsStream("/" + resource);

        }

        if (null != returnValue) {

          return returnValue;

        }

      }

    }

    return null;

  }

2、Resources

重要属性:ClassLoaderWrapper 类加载器的包装对象

通过资源名称获取对应的字节输入流、字符输入流、文件、属性对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis 源码