大版本,Jboot v3.6.0 重磅发布

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

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

Jboot 基于 JFinal 开发,属于 JFinal 生态体系应用框架,在 JFinal 的支持上,Jboot 主要新增了一些常用的功能。

  • 1、扩展了 Action 的日志,和 Sql 日志。详细的知道了每条完整的 Sql 及其 执行消耗时间。
  • 2、能够知道每个 Controller 的执行行号定位,每个拦截器是否执行、以及拦截器的执行行号定位,方便定位调试。

  • 3、在 JFinal ActiveRecordPlugin 的支持上、新增了根据列来查询的 API,更加方便我们通过 API 来查询数据。

示例1:

String name = "michael";
DAO.findFirstByColumns(Columns.create("username",name));

生成的 sql 为

select * from tableName where username = 'michael'

示例2:

public List<User> findList(){
   DAO.alias('u')
      .leftJoin("article").as('a').on("u.id = a.user_id")
      .loadColumns('u.nickname,a.title')
      .findListByColumns(Columns.create().in('u.id',1,2,3))
}

生成的 sql 为

select u.nickname,a.title from user as u 
left join article a on u.id = a.user.id
where u.id in (1,2,3)

同时支持、一对多、多对一、多对多查询、分库分表查询、和分布式事务等,详情:https://jbootprojects.gitee.io/docs/docs/db.html

  • 4、最新支持 JFinal 的 @Path 注解(同 @RequestMapping ),同时不需要在 Config 做任何的代码配置,同时支持在 @Path 下传入参数。

例如:

@Path("${myconfig}/club")
public class ClubController extends Controller {
   ......
}

在 jboot.properties  添加如下配置:

myconfig = /admin

最终,ClubController 的映射路径为:/admin/club ,其实,不仅仅是 @Path 注解,在 Jboot 体系下,所有的注解都支持参数配置。

当然,还有 RPC、分布式缓存、MQ 等更多的企业级功能,文档详情:https://jbootprojects.gitee.io/docs/

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

 

Jboot 主要有以下特征:

  • 1、基于 JFinal 的 MVC + ORM 快速开发。
  • 2、基于 ShardingSphere + Seata 分布式事务 和 分库分表。
  • 3、基于 Dubbo 或 Motan 的 RPC 实现
  • 4、基于 Sentinel 的分布式限流和降级
  • 5、基于 Apollo 和 Nacos 的分布式配置中心
  • 6、基于 EhCache 和 Redis 的分布式二级缓存

Jboot v3.6.0  更新内容如下:

  • 新增:ClassUtil.hasClass 方法,用于判断一些第三方组件依赖
  • 新增:Model 新增 @JsonIgnore 注解,用于配置某些不输出的字段
  • 新增:Model 新增 FastJson 的注解 @JsonField 的配置支持
  • 新增:新增对 JFinal 最新版本 @Path 的配置支持
  • 新增:DAO 查询的时候,支持通过 loadColumns() 方法配置其查询的列
  • 修复:Columns组装sql工具类in()、notIn()方法新增安全模式检查参数是否为空,解决安全模式下,List不为null,但没有元素时跳过安全检查。感谢 @Liuenxin
  • 优化:Columns.in() 和 Columns.notIn 修改参数 List 为 Collection
  • 优化:升级 JFinal、Fastjson、Nacos 等到最新版本
  • 优化:为 Json 的相关代码创建独立包
  • 优化:重构 JbootJson 使之代码更加简洁
  • 优化:重命名 SqlDebugger.debug 为 SqlDebugger.run,删除其不必要的方法
  • 优化:优化 AopCache,使之在缓存数据错误时,自动刷新缓存信息
  • 文档:更新 json 的相关文档

开发文档:

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

maven 依赖:

<dependency>
    <groupId>io.jboot</groupId>
    <artifactId>jboot</artifactId>
    <version>3.6.0</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);
    }
}

猜你喜欢

转载自www.oschina.net/news/120137/jboot-3-6-0-released