2017-07-31 21:32
// 配置ActiveRecord插件:
ActiveRecordPlugin arp1 = new ActiveRecordPlugin(configname1, druidPlugin1);
ActiveRecordPlugin arp2 = new ActiveRecordPlugin(configname2, druidPlugin2);
ActiveRecordPlugin arp3 = new ActiveRecordPlugin(configname3, druidPlugin3);
//Db 使用时:
Db.use(configname1).xxxx
Db.use(configname2).xxxx
Db.use(configname3).xxxx
//Model 使用时:
youModel.use(configname1).xxxx
youModel.use(configname2).xxxx
youModel.use(configname3).xxxx
随业务动态自动切换:
http://www.jfinal.com/share/236
2017-07-28 17:19
@爪爪
如果是 为某个数据源配置不同的cache 那么
// 配置ActiveRecord插件 的时候 就可以切换了,
ActiveRecordPlugin arp1 = new ActiveRecordPlugin("xxx1", druidPlugin1);
// 缓存使用
arp1.setCache(new RedisCache());
ActiveRecordPlugin arp2 = new ActiveRecordPlugin("xxx2", druidPlugin2);
// 缓存使用
arp2.setCache(new XxxxCache());
2017-07-28 17:09
@爪爪
上面例子中是在 PropKit.get("cache_type", "ehcache"); 中配置的,
配置文件中有个叫 cache_type=xxx 的
private static String getCacheType() {
return PropKit.get("cache_type", "ehcache");
}
-------------------------------------------------
还是看你的需求, 可以说说业务场景, 分析一下怎么搭配比较方便
如果是动态的随时去更改,
可以把 PropKit.get("cache_type", "ehcache");
改成 :
private static final ThreadLocal cache_type = new ThreadLocal();
private static String getCacheType() {
String cache_type = cache_type.get("cache_type")
return cache_type != null ? cache_type : "ehcache";
}
publicstatic String setCacheType(String cache_type) {
cache_type.set(cache_type);
}
//快捷
publicstatic String setCacheTypeEhcache() {
setCacheType("ehcache");
}
publicstatic String setCacheTypeXxxcache() {
setCacheType("xxxx");
}
2017-07-28 12:13
@魑魅魍魉-two Record 是非常棒的大招 , 比如你的系统中表字段会动态的增减或没主键等, 这个就非常合适, 用model反而不方便了,还需再更新一下TableMapping才能用.
model适合已知固定字段的业务, 常见业务一般都会定下字段和主键等,
根据业务场景选择合适的~
2017-07-28 09:27
@爪爪 RedisPlugin 挂参不一样就可以了 , 可以挂不同的IP,端口等, 来切换到不同的或多个 redis 服务 , 通过 cacheName 即可取到他们了 ,