zuul入门(5)zuul的过滤器加载

一、Groovy编写的Filter

1、可以放到指定目录加载

创建一个pre类型的filter,在run方法中获取HttpServletRequest 然后答应header信息

在代码中加入groovy编译器,间隔10秒扫描一次groovy文件,其代码如下:

<dependency>

<groupId>org.codehaus.groovy</groupId>

<artifactId>groovy-all</artifactId>

<version>2.4.4</version>

</dependency>

FilterLoader.getInstance().setCompiler(new GroovyCompiler());

try

{

FilterFileManager.setFilenameFilter(new GroovyFileFilter());

FilterFileManager.init(10,"/Users/liaokailin/code/ieda/springcloud/myzuul/src/main/java/com/lkl/springcloud/zuul/filters/groovy/pre");

}

catch (Exception e)

{

throw new RuntimeException(e);

}

这里groovy文件通过绝对路径指定,如果是实际开发中,可以通过db去存储groovy文件。

二、Java编写的filter

通过ServletRegistrationBean构造ZuulServlet,该Servlet用以进行filter执行调度以及监控等等操作

1、SpringBoot应用

final FilterRegistry r = FilterRegistry.instance();

r.put("javaPreFilter", new ZuulFilter()

{

@Override public int filterOrder()

{

return 50000;

}

@Override public String filterType()

{

return "pre";

}

@Override public boolean shouldFilter()

{

return true;

}

@Override public Object run()

{

System.out.println("running javaPreFilter");

RequestContext.getCurrentContext().set("name", "liaokailin");

return null;

}

});

时间: 2024-08-01 14:55:33

zuul入门(5)zuul的过滤器加载的相关文章

MyBatis入门(五)---延时加载、缓存

一.创建数据库 1.1.建立数据库 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.7.9-log : Database - mybatis ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @[email protec

好记性不如烂笔头32-java通过过滤器加载常用数据(4)

有很多的数据,更新的频率很低,比如中国行政区划,为避免每次都要从数据库查询,因此可把这些数据放在中,提高系统响应速度. 这种功能可以在很多的地方实现,也可以在过滤器中完成. 我们在上一节说了敏感词过滤器,每一次数据都要读取文件,好像效率稍微低了点,我们把这个加到缓存中吧. 1.JAVA实现利用过滤器实现敏感信息过滤 过滤器的JAVA代码: package com.filter; import java.io.BufferedReader; import java.io.IOException;

OpenCV入门:(二:加载,显示,修改以及保存图片)

目标: 1.从图片文件打开图片(imread) 2.显示图片(namedWindow和imshow) 3.转换当前图片为灰色图片(cvtColor) 4.保存图片(imwrite) 代码: #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <iostream> using namespac

esri-leaflet入门教程(4)-加载各类图层

by 李远祥 在leaflet中图层一般分为底图(Basemap)和叠加图层(Overlay).前面章节已经介绍过底图其实也是实现了TileLayer 接口,而其他的叠加图层要么就是叠加的业务图层,要么就是动态显示的图形和符号.这一点在esri leaflet中也是有对照的. ArcGIS产品中比较让人熟知的图层包括ArcGISDynamicMapServiceLayer.ArcGISImageServiceLayer.ArcGISTiledMapServiceLayer.FeatureLaye

spring入门(二)【加载properties文件】

在开发过程当中需要用到配置信息,这些信息不能进行硬编码,这时配置文件是一个比较好的方式,java提供了properties格式的文件,以键值对的方式保存信息,在读取的时候通过键获得键对应的值,spring提供了读取properties文件的支持,下面看具体的配置, 一.<context:property-placeholder location=""/>标签 在项目中经常用到数据库连接,连接数据库需要一些参数:driver.url.username.password,这些信

【PHP面向对象(OOP)编程入门教程】23.自动加载类 __autoload()函数

很多开发者写面向对象的应用程序时,对每个类的定义建立一个 PHP 源文件.一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表. 在软件开发的系统中,不可能把所有的类都写在一个PHP文件中,当在一个PHP文件中需要调用另一个文件中声明的类时,就需要通过include把 这个文件引入.不过有的时候,在文件众多的项目中,要一一将所需类的文件都include进来,是一个很让人头疼的事,所以我们能不能在用到什么类的时 候,再把这个类所在的php文件导入呢?这就是我们这里我们要

selenium2入门 用selenium安装、加载、启用插件(一)

一:下载 下载地址是:http://docs.seleniumhq.org/download/ 一般火狐更新一次版本,就要换一次jar包. 二:打开java里应用 1.火狐浏览器打开(selenium是内置火狐的,所以打开火狐不需要其他jar包.但是如果要打开ie和chrome需要下载对应的jar包) package info.cloudits.webdriver; import org.openqa.selenium.WebDriver; import org.openqa.selenium.

web前端入门到实战:异步加载CSS最简单的实现方式

我们想提高网页性能的最有影响力的措施之一,就是以不延迟网页渲染的方式加载CSS. 在默认情况下,浏览器在加载CSS时将终止页面的样式呈现(同步加载),也就是加载CSS会阻塞DOM树的渲染(但并不会阻塞DOM树的构建),可以简单理解为:当在加载CSS的同时,也在构建DOM树,只是没有应用上样式. 渲染流程 简单过一遍浏览器渲染的流程: 加载HTML资源 解析HTML 加载CSS资源,同时构建DOM树 解析CSS,同时渲染DOM树 当CSS文件过大,就会停留在第3步,所以网速慢时,打开网站的时候经常

zuul入门(3)过滤器

Zuul大部分功能都是通过过滤器来实现的.Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期. (1) PRE:这种过滤器在请求被路由之前调用.我们可利用这种过滤器实现身份验证.在集群中选择请求的微服务.记录调试信息等. (2) ROUTING:这种过滤器将请求路由到微服务.这种过滤器用于构建发送给微服务的请求,并使用Apache HttpClient或Netfilx Ribbon请求微服务. (3) POST:这种过滤器在路由到微服务以后执行.这种过滤器可用来为响应添加