ibatis xml文件解析自行实现

一切从简的原则,尽可能显露出ibatis处理xml的骨架,剔除那些额外的处理部分。
只保留io读取和xml如何转换的东西。

在这里插入图片描述

Resource类是根据路径读取对应的InputStream文件的流
XmlParser类是根据对应的文件流解析xml
SqlMapConfigParser 是对xmlParser的类的封装,形成一个对外接口

public static void main(String[] args) throws IOException {
    String resours = "SqlMapConfig.xml";
    InputStream inputStream = Resource.getResourceAsStream(resours);

    new SqlMapConfigParser().parse(inputStream);
}

SqlMapConfigParser类的内容

protected final XmlParser parser = new XmlParser();
public SqlMapConfigParser() {
}
public void parse(InputStream inputStream) {
 try {
   parser.parse(inputStream);
 } catch (Exception e) {
   throw new RuntimeException("Error occurred.  Cause: " + e, e);
 }
}

为了最大可能的实现源码,以及在学习后自己能够将其对应的功能复现。除设计模式和特定功能外,其他都删减掉。还原ibatis在某一个功能,它是如何处理的。这样更加具有学习意义。
源码地址: https://gitee.com/cnhellorui/some_source_code/tree/master/xmlParser

展开阅读全文

没有更多推荐了,返回首页