Jboot又发新版本了,具体地址: https://git.oschina.net/fuhai/jboot
jboot 1.0-beta2 changes更新如下:
1、修复jboot shiro模块的相关bug,可以愉快的在项目中使用shiro了,而且可能是jfinal的shiro支持中最好用的一个。感谢@zhoujh 2、修复无法实例化JbootDbManager的bug。 3、修复JbootRedisLock基于Redis的分布式锁release出错的bug。 4、新增datasource poolName的配置支持。 5、新增多数据源的支持,非常非常简单的在Jfinal中使用多数据源。 6、新增CacheEvict和CachePut两个注解,方便通过配置设置缓存。 7、新增JbootAppListener{敏感词},方便监听Jboot和Jfinal的启动状态,对自己的程序进行初始化等工作。 8、新增Jfinal sql template 配置的支持,只需在jboot.properties进行配置,无需一行代码。
1、配置住数据源
jboot.datasource.type= jboot.datasource.url= jboot.datasource.user= jboot.datasource.password= jboot.datasource.driverClassName=
2、配置其他数据源
jboot.datasource.a1.type= jboot.datasource.a1.url= jboot.datasource.a1.user= jboot.datasource.a1.password= jboot.datasource.a1.driverClassName= jboot.datasource.b2.type= jboot.datasource.b2.url= jboot.datasource.b2.user= jboot.datasource.b2.password= jboot.datasource.b2.driverClassName= jboot.datasource.xxx.type= jboot.datasource.xxx.url= jboot.datasource.xxx.user= jboot.datasource.xxx.password= jboot.datasource.xxx.driverClassName=
以上配置是配置了a1、b2、xxx 三个不同的数据源,在使用Jfinal(或Jboot)进行数据操作的时候,只需在model中使用use指定数据源即可,例如:
UserModel user = new UserModel(); user.setUserName(“michael”); user.serPassword(“123456”); user.use(“a1”).save();//使用数据源a1进行保存 user.use(“b2”).save();//使用数据源b2进行保存 user.use(“xxx”).save();//使用数据源xxx进行保存
更多关于多数据源的使用,请参考Jfinal的帮助文档。
代码:
JbootRedisLock lock = new JbootRedisLock("lockName"); lock.runIfAcquired(new Runnable(){ @Override public void run() { //do your something } });
在分布式项目中,在并发高峰的时候,对于同一个lockName,只会有一个Runnable在执行,其他执行到这部分的时候,会直接跳过。
若想让其他分布式项目(或者并发线程)在这部分等待,则需要指定等待时间,初始化JbootRedisLock的代码修改如下:
JbootRedisLock lock = new JbootRedisLock("lockName”,1000*10); lock.runIfAcquired(new Runnable(){ @Override public void run() { //do your something } });
这个锁会等待10秒,在10秒内能获得锁就执行Runnable代码,得不到就跳过。
虽然jboot还没有发布1.0正式版,但是基于Jfinal多年稳定的框架基础上,bug已经非常之少,同时已经有很多的商业项目在使用jboot进行开发,遇到问题在QQ群反馈一般情况下也都会当天修复,所以小伙伴可以放心愉快的使用,你会感受到前所未有的快感。
Jboot,专为大型分布式项目和微服务而生,欢迎评论、批评和指导。