2017-08-04 16:03
@dear7575 注意最新版本的 jfinal 的 Model 中有一个 protected Config _getConfig() 方法,这个方法是可以通过继承并覆盖,从而实现数据源切换的
简单来说,要在整上切换 model 的数据源,并且对开发者完全透明化,只需要做两点:
1:用一个全局拦截器 + ThreadLocal 将当前线程的 Config 绑定到当前线程
2:通过引入一个中间 MyModel extends Model 覆盖 _getConfig() 方法,并在这个方法中从全局拦截器中获取 ThreadLocal 中准备好的 Config 对象
而 Db.xxx(...) 系列方法的数据源自动化切换也大体可以用上面的方式,只需要将第 2 步改为以下的方式:
让 Db.xxx(...) 方法使用的 config 对象也参考上述方式进行切换