Jboot v3.6.1 发布,持续发力 JFinal 分布式的生态建设

Jboot 是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务开发门槛。同时完美支持在 idea、eclipse 下多 maven 模块,对 java 代码、html、css、js 等资源文件进行热加载。爽爽开发,快乐生活。

到目前为止,Jboot 已经开源超过了 4 年的时间,迭代了 160+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司。

 

Jboot V3.6.1 主要新增了关于分布式的场景类,JbootLock、JbootCounter。

一般情况下,在单体项目中,如果我们要对线程进行同步,我们可以对代码添加 锁,比如使用 Synchronized、ReentrantLock 等对代码进行线程同步,但是,如果在分布式的场景下,Synchronized、ReentrantLock 是无法夸应用进行线程同步的。分布式的线程同步,我们还需要编写大量的代码来实现。

在这样的场景进行,Jboot 新增了 JbootLock,用于保证本地和分布式拥有一致的特征。

例如:

JbootLock lock = JbootLockManager.me().create("myLock");
try {    
    lock.lock();
    
    do_your_something();


}finally {    
    lock.unlock();
}

这样的代码,在单体项目开发时,能够正常的使用,在分布式的场景下,我们只需要在 jboot.properties 里添加如下配置。

jboot.object.lock.type = redis

就可以正常的让 JbootLock 在分布式的场景下、夸应用进行 “线程同步”。

JbootCounter 是一个计数器,拥有了和 JbootLock 一样的特征,可以在本地和分布式场景下通过配置进行切换。

 

Jboot 主要有以下特征:

  • 1、基于 JFinal 的 MVC + ORM 快速开发

  • 2、基于 ShardingSphere + Seata 分布式事务 和 分库分表

  • 3、基于 Dubbo 或 Motan 的 RPC 实现

  • 4、基于 Sentinel 的分布式限流和降级

  • 5、基于 Apollo 和 Nacos 的分布式配置中心

  • 6、基于 EhCache 和 Redis 的分布式二级缓存

Jboot v3.6.1  更新内容如下:

  • 新增:JbootCaptchaCache 方便在分布式的场景下进行验证码验证

  • 新增:JbootTokenCache 方便在分布式下进行 token 验证

  • 新增:JbootLock,方便在本地模式下分布式模型下进行锁机制编写

  • 优化:RequestMapping 注解添加空字符串 "" 配置的支持。

  • 优化:移动 JbootAccessTokenCache 的包名,优化器对分布式场景下微信开发

  • 优化:重构 JbootCounter,使其在单体模型下和分布式场景下有一致的特征

开发文档:

https://jbootprojects.gitee.io/docs/

同时,Jboot 官方也推出了企业级开发框架 JbootAdmin,详情 https://jbootprojects.gitee.io/docs/jbootadmin/

maven 依赖:

<dependency>
    <groupId>io.jboot</groupId>
    <artifactId>jboot</artifactId>
    <version>3.6.1</version>
</dependency>

Hello World:

@RequestMapping("/")
public class HelloworldController extends JbootController {    

    public void index(){
        renderText("hello world");
    }    
    
    public static void main(String[] args){
        JbootApplication.run(args);
    }
}


评论区

JFinal

2020-11-17 10:37

迭代超快,赞

prelove

2020-11-17 14:03

已更新,用法建议更新文档