mybatis3源码研究-构建SqlSessionFactory(二)

上一篇研究了通过配置文件来构建SqlSessionFactory,本篇将看一下如何通过java程序来构建SqlSessionFactory。
在指南中也给我们提供了相应的方法,如下:
DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();
TransactionFactory transactionFactory = new
JdbcTransactionFactory();
Environment environment =
new Environment(“development”, transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(BlogMapper.class);
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(configuration);

我们来看一下这段代码,结合上篇代码分析,我们知道构建 SqlSessionFactory的核心代码是 SqlSessionFactoryBuilder().build(configuration);
也就是我们只需要一个configuration即可,既然只需要一个configuration,那么我们的配置信息就需要全部加载到这个对象中。
而我们的配置文件主要有,这两对标签;通过上篇的分析我们可以知道environments 最终解析到了configuration的environment属性中,而mappers最终也是调用的configuration.addMapper方法。
而Configuration中恰好有这么一个构造方法:
public Configuration(Environment environment) {
this();
this.environment = environment;
}
而Environment的构造方法又是如下
public Environment(String id, TransactionFactory transactionFactory, DataSource dataSource){
…………
}
这样所有的信息就都加载到系统中了。

分析这两种构建方法,很容易发现,二者其实是殊途同归,无外乎就是将配置加载到configuration中,然后再通过SqlSessionFactoryBuilder().build(configuration)方法构建一个SqlSessionFactory的实现类
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值