mybatis 源码系列(三) 配置之环境变量Environment

时间:2019-05-15
本文章向大家介绍mybatis 源码系列(三) 配置之环境变量Environment,主要包括mybatis 源码系列(三) 配置之环境变量Environment使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

通过初始化的章节,我们知道了mybatis的核心配置类Configuration,那么,接下来我们逐一查看该配置的属性

简介

本章主要是查看Environment环境变量

Configuration.java


/**
 * @author Clinton Begin
 */
public class Configuration {

  /***
   * 环境
   * 一般在程序开发和上线部署时,数据源会有所不同,例如:dev(开发),prod(生产)
   * 所以我们在不同的环境中,需要构建不同的environment对象
   */
  protected Environment environment;
    //other field
    
   /***
   * 根据环境参数构造
   * @param environment
   */
  public Configuration(Environment environment) {
    this();
    this.environment = environment;
  }
}

其中在Configuration的构造函数中,就有通过Environment来构建对象实例的构造方法.

所以,本章节开始来研究Environment的详细属性字段

类图

研究每个类之前,我们先来看该类的相关类图属性

从类图中,我们得知Environment有三个属性:

  • id:当前环境变量的id,例如dev、prod等等
  • transactionFactory:当前环境中的事务管理器
  • dataSource:当前环境中的数据源

使用

看完了类图,我们在来看环境变量的使用方法,主要有两种方式

  • 基于Xml的配置方式,配置Environment的xml节点信息
  • 基于Java Bean的方式手动创建

基于Xml

<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf-8&amp;allowMultiQueries=true"/>
            <property name="username" value="root"/>
            <property name="password" value="123456"/>
        </dataSource>
    </environment>
</environments>

基于Java Bean的方式

既然我们通过类图知道的Environment的相关属性和构造方法,那么通过Java的方式也是很简单,代码如下: