栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发

Zuul的插件机制及定制化开发

Zuul的另外一个重要机制就是Filter动态加载机制。Zuul支持的动态Filter由Groovy代码编写,动态管理Groovy的File目录变更并动态编译和加载。

● Filter类文件动态管理

Zuul通过FilterFileManager组件监控存放Filter文件的目录,定期扫描这些目录,如果发现有新Filter源码文件或者Filter源码文件有改动,则对文件进行编译和加载。FilterFileManager管理目录轮询的变化和新的Groovy过滤器。轮询间隔和目录在类的初始化中指定,并且轮询器将进行检查、更改和添加操作。下面的代码开启轮询线程。

startPoller开启轮询线程以定时调用manageFiles方法扫描目录,监听目录变化的startPoller方法在FilterFileManager初始化时调用一次下面的代码完成目录扫描及检测。

● Filter类文件动态编译

Zuul动态加载Filter文件,并通过编译器将文件编译成Class,目前Zuul通过定义DynamicCodeCompiler接口及Groovy编译的实现类GroovyCompiler 来 完 成 Groovy 编 写 的 Filter 的 动 态 编 译 。

DynamicCodeCompiler接口定义如下:

GroovyCompiler类型加载的源码如下:

● Java类型动态Zuul Filter加载

基于Zuul的字节码加载机制和File文件扫描与类文件动态加载机制,也支持基于Java语言的动态Zuul Filter加载(因为篇幅所限,代码部分省略)。

代码以图片形式展现出来,就是为了能够让大家手敲一遍,不要CV。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444729.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号