SqlSessionFactory是MyBatis的核心类之一,其最重要的功能就是提供创建MyBatis的核心接口SqlSession,所以要先创建SqlSessionFactory,为此要提供配置文件和相关的参数。MyBatis是一个复杂的系统,它采用了Builder模式去创建SqlSessionFactory,在实际中可以通过SqlSessionFactory
Builder去构建,其构建可以分为两步。
第一步:通过org.apache.ibatis.builder.xml.XML.ConfigBuilder解析配置的xml文件,读出所配置的参数,并将读取的内容存入org.apache.ibatis.session.Configuration类对象中去。而Configuration采用的是单例模式,几乎所有的MyBatis配置内容都会存放在这个单例对象中,以便后续将这些内容读出。
第二步:使用Configuration对象去创建SqlSessionFactory。MyBatis中的SqlSessionFactory是一个接口,而不是一个实现类,为此MyBatis提供了一个默认的类org.apache.ibatis.session.defaults.De
faultSqlSessionFactory。在大部分情况下都没有必要自己去创建新的SqlSessionFactory的实现类。
这种创建的方式就是一种Builder模式,对于复杂的对象而言,使用构造参数很难实现。这时使用一个类(比如 Configuration)作为统领,一步步的构建所需的内容,然后通过他去创建最终的对象(比如 SqlSessionFactory),这样每一步都会很清晰,这种方式值得我们学习。
网友评论