Jboot v3.9.11 发布,增强了 JFinal 一个有趣的小功能

Jboot 一个更简单的分布式、微服务框架。

Jboot是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务、分布式开发门槛。爽爽开发,快乐生活。

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

Jboot v3.9.11  主要是对门户网关 Gateway 进行了大量优化,增强了 GatewayInterceptor 的能力,简化了 RPC 的默认配置,并扩展了 JFinal 一个有趣的小功能。


我们都知道,JFinal 支持通过 @ActionKey("/your/path") 给某个方法自定义 actionKey,JFinal 的 @ActionKey 注解只支持绝对路径,Jboot v3.9.11 新增支持了相对路径的功能:

比如:

@Path("/controller")
public MyController extends Controller{

   public void index(){
   }
   
   @ActionKey("./something")
   public void do_something(){
   }
   
}


此时,do_something() 的完整路径为 /controller/something。


Jboot v3.9.11 更新内容如下:

  • 新增:JFinal 注解 @ActionKey() 支持 ./ 相对路径的配置

  • 新增:门户网关拦截器新增对 Header 的配置

  • 新增:JbootActionReporter 的开关配置,而不是由 devMode 决定

  • 优化:门户网关的健康检查代码抽离为独立的类 JbootGatewayHealthChecker

  • 优化:门户网关 NoneHealthUrlErrorRender 重构为 GatewayErrorRender,支持更多的错误渲染

  • 优化:门户网关可以通过拦截器自定义前端渲染功能

  • 优化:简化 RPC 的默认配置

  • 优化:优化 JWT 的代码逻辑

  • 优化:升级 JFinal、Seata 等到最新版本

  • 优化:优化 ConfigUtil 的参数解析方法

  • 优化:优化 FastJsonSerializer 的逻辑代码

  • 文档:优化序列化的相关文档

Jboot 开发文档:

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

同时,Jboot 官方也推出了收费的、企业级快速开发框架 JbootAdmin (如下图所示),关于 JbootAdmin 的功能详情或者演示,请咨询海哥。

111.png


 

maven 依赖:

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

Hello World:

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

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



评论区

AlienJunX

2021-05-07 10:13

太棒了,正是我想要的

SuperEric

2021-05-07 16:11

关于这个路径,是否可以考虑稍微优化一下,例如:@ActionKey("/a") 以“/”开头为根开头的绝对路径,即访问路径为:http://jfinal.com/a, 而@ActionKey("a")则为当前controller @Path("/controller") 下的相对路径,即访问路径为:http://jfinal.com/controller/a,这样的规则是否更合理一些?@海哥 @JFinal

杜福忠

2021-05-07 17:55

@SuperEric 历史规则被占咯,if (!actionKey.startsWith("/")) actionKey = "/" + actionKey;
感觉如果真要加一个方法名,我情愿再加一个 a 方法里面转调一下之前那个方法就可以了,还少了一层约定规则。。。

SuperEric

2021-05-07 20:24

@杜福忠 确实是历史规则不好处理兼容了。海哥这办法算是很好的兼容了。