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&characterEncoding=utf-8&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
基于Java Bean的方式
既然我们通过类图知道的Environment的相关属性和构造方法,那么通过Java的方式也是很简单,代码如下:
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~
- 手把手教你用neo4j搭建简单关联图谱(基于家有儿女中的人物关系)
- c#中的静态本地方法
- C#加解密
- SQL Server 每日一题--解析老N的收入
- neo4j中导入数据的两种常用方式(千万级和亿级)
- Entity Framework Core 实现全局查询过滤
- Entity Framework Core 捕获数据库变动
- SQL Server 每日一题--解析产品
- Python绘制漫天的雪花,漫步天涯
- c#8内插逐字字符串增强功能
- EF Core 数据验证
- 网站优化,这些工具你一定用得着
- 一、了解Scrapy
- 二、安装 Scrapy