重大版本更新,Jboot v3.5.0 全新发布

栏目: 软件资讯 · 发布时间: 1个月前

来源: 开源中国社区

内容简介:Jboot 是一个基于 JFinal、JFinal-Undertow、Dubbo、Seata、Sentinel、ShardingSphere、Nacos 等开发的微服务框架,帮助开发者降低微服务开发门槛。同时完美支持在 idea、eclipse 下多 maven 模块,对 java 代码、...

本文转载自:https://www.oschina.net/news/118702/jboot-3-5-0-released,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

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

在 Jboot v3.5.0 中,我们新增了一个全新的组件:InterceptorBuilder。

InterceptorBuilder 能够根据当前 Controller、Service 的方法,来对当前方法应该使用哪些拦截器进行构建,在之前 JFinal 的体系里,给某个方法添加拦截器只能通过 @Before({MyInterceptor.class}) 或者 configInterceptor() 配置方法里添加全局拦截器。

这样带来一个不够优雅的地方是,如果我们想给某个方法 ”增强“,只能以添加全局拦截器的方式来做,在 Jboot 中,如果我们想让某个方法拥有缓存功能,可以使用注解 @Cacheable ,如下代码:

@Cacheable(name = "cacheName", key = "#(id)", liveSeconds = 5)
public String findCommentById(String id) {
    // your code
}

这个 @Cacheable 的注解的含义是:方法 findCommentById 的数据结果,会根据其 id 缓存 5 秒的时候,在 5 秒内通过同一个 id 去获取,都是直接从缓存中获取,不再执行 findCommentById 这个方法。5 秒之后,改缓存自动失效,如果再调用此方法又会重新执行。

在 Jboot 中,除了缓存,还有 Sentinel 限流和降级机制、Seata 分布式事务、Metrics 监控等等组件都是使用了类似的处理方案。

在过去 JFinal 的机制中,这种方案只能通过唯一一种方法就是添加全局拦截器,每个方法都是通过拦截器执行,然后拦截器再来判断该方法是否有注解比如 @Cacheable 等。这样就带来了性能效率的下级,因为在我们整个系统中,有非常多的方法是没有 @Cachea 主要的注解的,他本身已经明确不需要缓存等这些特征的。

有了 InterceptorBuilder 之后,我们可以通过 InterceptBuilder 给某个方法来构建其特定的拦截器,而不是全局拦截器,这样,极大的提高了性能,同时减少了不必要的调用堆栈。

因为有了 InterceptorBuilder 之后,Jboot 之前内置的 FixedInterceptor 组件也被移除了,如果需要类型 FixedInterceptor 的拦截器,我们可以通过自定义 InterceptorBuilder 来进行构建即可。

如何使用 InterceptorBuilder 呢?如下代码:

public void onInit() {
   InterceptorBuilderManager.me().addInterceptorBuilder(new MyInterceptorBuilder());
}

比如 @Cacheable 的拦截器构建 CacheInterceptorBuilder 代码如下:

public class CacheInterceptorBuilder implements InterceptorBuilder {

    @Override
    public void build(Class<?> serviceClass, Method method, Interceptors interceptors) {
       
        Cacheable cacheable = method.getAnnotation(Cacheable.class);
        if (cacheable != null) {
            interceptors.add(new CacheableInterceptor());
        }
    }
}

在方法 build 中的 Interceptors,我们不仅仅可以通过 Interceptors 来添加拦截器,我们还可以通过其来删除拦截器、或者移动拦截器位置等等操作。

除此之外,Jboot 3.5.0 带来了更加好用和稳定的分布式文件管理机制,和全新的文档,分别托管在 gitee page 和 github上。

访问地址:http://jboot.io (这个放在github上,会有点慢)

国内镜像:http://jbootprojects.gitee.io/docs

目前已经开源超过了 3 年的时间,迭代了 100+ 个版本,已经被超过 1000+ 公司在使用。欢迎你来使用、体验 和 吐槽这个类似 SpringCloud 却不一样的框架。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

关注码农网公众号

关注我们,获取更多IT资讯^_^


为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

重新理解创业

重新理解创业

周航 / 中信出版集团 / 2018-10-20 / 58.00

易到用车创始人/顺为资本投资合伙人周航,首度复盘20年创业经历,全方位坦陈创业得与失。这不是一本创业成功手册,却是思想的一次出走。 20年创业经历的咀嚼与反思,从战略、品牌、竞争,到流量、领导力、团队管理等,多角度多维度的重新认知,如李开复所言,“都是真刀真枪打出来的经验,值得每一位创业者多读几遍,吸收内化”。 雷军、李开复、徐小平作序,梁建章、张志东、曾鸣推荐。一起来看看 《重新理解创业》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具