Mybatis源码解析——日志

日志

适配器模式

Mybatis自己有一套统一的日志接口供上层使用,使用适配器模式为常用日志框架提供了适配器

LogFactory

负责创建对应日志组件的适配器,其静态块初始化加载会按顺序加载各日志组件的适配器,并使用第一个加载到的日志组件适配器,保存到logConstructor这个静态字段里

JDBC调试日志

BaseJdbcLogger记录了绑定SQL参数相关的set方法以及执行SQL语句相关的方法名称
ConnectionLogger封装了Connection对象同时实现了InvocationHandler对象,其newInstance()方法会为其封装了Connection对象创建代理对象。其invoke()方法为prepareStatement(),prepaerCall(),createStatement()等方法提供了代理,具体是调用这些方法时会创建相应的Statement对象及代理对象并返回代理。
PreparedStatementLogger,StatementLogger,ResultSetLoggernewInstance()方法都类似,他们的invoke()方法会对其相应的方法添加日志打印的功能

发布了98 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Mutou_ren/article/details/102861224