【发布时间】:2018-08-23 16:21:26
【问题描述】:
我有一个基于 Spring Cloud Netflix 包运行的 Zuul 网关。我还创建了一个基于 Zuul“groovy”的过滤器,如 blog here 所示。当我添加 groovy 文件时,由于 IDE / 编译器抱怨类路径上没有 groovy 库,我还必须将以下 jar 添加到我的 pom.xml 以允许将 groovy 文件编译到项目中-
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.3.10</version>
</dependency>
从这里开始,我的 groovy 过滤器按预期加载,并针对 Zuul 的每个传入请求进行评估。到目前为止一切都很好,除非我尝试修改 groovy 文件,除非我重新启动服务器,否则我看不到对文件的更改是动态拾取的。
我对 Groovy 很陌生。在 Netflix Zuul 及其过滤器的上下文中,我应该怎么做才能利用 Groovy 过滤器的动态特性。来自 Netflix 的 pain Zuul 库会扫描特定目录以查找 Groovy 过滤器。 Netflix Zuul 的 Spring cloud wrapper 有类似的东西吗?
请注意,我已阅读 Spring 4 支持动态语言,如 groovy 等,但使用它需要使用 lang:groovy 等配置 XML 文件。
但是,在我的例子中——使用 Spring Cloud Netflix 库,没有 groovy 类的 XML 配置文件,我能够让 Spring Cloud / Zuul 库获取我的 groovy 类。我无法动态刷新它,想知道是否有办法做到这一点。
我确实阅读了 spring-cloud 文档,除了一条语句之外,我没有看到任何有关加载 groovy 过滤器的信息 - Zuul’s rule engine allows rules and filters to be written in essentially any JVM language, with built in support for Java and Groovy.
请指教。
【问题讨论】:
标签: java groovy netflix-zuul spring-cloud-netflix