Jboot 一个更简单的分布式、微服务框架。
Jboot是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务、分布式开发门槛。爽爽开发,快乐生活。
支持 JDK8~JDK17。
Jboot v3.14.3 主要是优化细节,并新增了一个 JSON 解析工具类 JsonUtil,用于解析 Json 数据,可能是市面上最好用的 Json 解析工具。Talk is cheap...
假设 JSON 内容如下:
{ "array": [ 1, 2, 3 ], "type": true, "number": 123, "users": [ { "id": 1, "nickname": "Michael" }, { "id": 2, "nickname": "Jean" } ], "key1": { "key2": "welcome to WWW.CodeFormat.CN" } }
Boolean type = JsonUtil.getBool(json,"type"); //type == true BigInteger n = JsonUtil.getBigInteger("number") // n == 123 String[] array = JsonUtil.get(json,"array",String[].class) //array == ["1","2","3"] int[] array = JsonUtil.get(json,"array",int[].class) //array == [1,2,3] Map map = JsonUtil.get(json,"object",Map.class) //map == {"a":"b","c":"d","e":1} int x = JsonUtil.getInt(json,"array[1]"); // x == 2 String key = JsonUtil.getString(json,"key1.key2"); // key == "welcome to User[] users = JsonUtil.get(json,"users",User[].class) // users == [{"id":1,"nickname":"Michael"},{"id":2,"nickname":"Jean"}] List<User> users = JsonUtil.get(json,"users",new TypeDef<List<User>>()) // users == [{"id":1,"nickname":"Michael"},{"id":2,"nickname":"Jean"}] Set<User> users = JsonUtil.get(json,"users",new TypeDef<Set<User>>()) // users == [{"id":1,"nickname":"Michael"},{"id":2,"nickname":"Jean"}] Integer[] userIds = JsonUtil.get(json,"users.id",Interger[].class)/ /userIds == [1,2] Integer user1Id = JsonUtil.getInt(json,"users[0].id") //user1Id == 1 List<String> nicknames = JsonUtil.get(json,"users.nickname",new TypeDef<List<String>>()) // users == ["Michael","Jean"]
Jboot v3.14.3 更新内容如下:
新增:注解 @Table(datasource="xxx") 新增对数据源的配置支持
新增:添加 jboo.app.listenerPackage 配置支持,用于只扫描哪些包的 listener
新增:Informix 数据库方言,感谢 @xujianxie 同学
新增:JbootModel 新增 findByIdWithoutCache() 方法
新增:新增 JbootModel 的 CPI 类,用于开放保护方法
新增:Nacos 远程配置中心添加多实例的配置支持
新增:网关拦截器 GatewayConfig.interceptors 添加 SPI 名称配置的支持
新增:JsonUtil.java 方便解析 Json 数据
优化:ValidUtil.java,支持在非自定义消息的时候输出拦截的列名
优化:ClassScanner.java 默认关闭 Class 扫描信息在控制台输出
优化:修改缓存拦截器的默认权重为 100,当前情况下拦截器在最后执行
优化:完善 JbootJson 更多的代码注释
优化:优化 JbootConfigManager.java 代码,对添加 key 进行 trim()
优化:进一步完善 jboot.properties 文件存放位置的探测
优化:单元测试移除 mockHandler
优化:DAO.findFirstByColumn(),当传入 null 应抛出错误,防止查询出错误的数据
优化:rabbitmq.queueDeclareDurable 的配置默认设置为 false
优化:对 QuietlyUtil 的方法进行重命名优化
优化:ValidErrorRender 输出的 message 不带有 fieldName 信息
优化:升级 Jfinal 等依赖到最新版本
优化:JbootModel.findByColumn 当传入 null 值 value 时,直接返回 null
优化:Model 保存和之前版本一致的行为,只允许绑定到一个数据源
优化:当 Model 配置指定数据源,但数据源不存在的时候,给出更为明确的错误提示
优化:Rabbitmq 添加自由开启队列和广播的开关,默认全部开启
优化:重构 CORS 模块,使之代码可以用户模块里进行 "复用"
修复: HttpUtil 在 put 请求时,某些情况下无法正常提交数据的问题
修复:@Cacheput() 注解在 Controller 上无效的问题