如今,由于我们在响应中发送大量数据,因此必须对API响应执行Gzip压缩。 它节省了网络带宽和交付时间,当然还节省了Internet上的空间。

CXF提供了以多种方式使用Gzip压缩的选项。

  1. 蓝图
  2. 注解

蓝图:

<bean id="gZipInterceptor" class="org.apache.cxf.transport.common.gzip.GZIPOutInterceptor" /><jaxrs:server id="rsServer" address="/gZip"><jaxrs:outInterceptors><ref component-id="gZipInterceptor" /></jaxrs:outInterceptors></jaxrs:server>

注解:

首先,您需要在out拦截器列表中注册GZIPOutInterceptor 。 为此,您需要加入CXF初始化类。

public class InterceptorManager extends AbstractFeature {private static final Logger LOGGER = Logger.getLogger( "simcore" );private static final Interceptor< Message > GZIP = new GZIPOutInterceptor();//private static final Interceptor< Message > GZIP = new GZIPOutInterceptor(512);/* (non-Javadoc)* @see org.apache.cxf.feature.AbstractFeature#initializeProvider(org.apache.cxf.interceptor.InterceptorProvider, org.apache.cxf.Bus)*/@Overrideprotected void initializeProvider( InterceptorProvider provider, Bus bus ) {/*** Adding Gzip interceptor to all outbound requests/responses*/LOGGER.debug( " ##############  Adding Gzip as OUT Interceptor ##############" );provider.getOutInterceptors().add( GZIP );}
}

GZIPOutInterceptor带有一个选项,用于将阈值设置为字节数。 如果响应大小低于此阈值,则将不会对其进行压缩。 当我们仅发送空列表和状态消息/代码时,这将非常有用,因为压缩这些小的响应将在服务器端增加开销。

但是,我们还必须考虑另一个因素,即请求响应的用户数量。 因此,请考虑可能出现的所有情况,以适当地设置此值。

@GZIP

现在,我们可以在任何Web服务控制器上使用此批注,以对该类中提供的所有API实施压缩。

@WebService
@Consumes ( { MediaType.TEXT_PLAIN, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON } )
@Produces ( MediaType.APPLICATION_JSON )
@GZIP
public interface WebServicesController {@GET@Path ( "/myGzipData" )@Produces ( { MediaType.APPLICATION_JSON } )Response getZipData( );}

此外,我们可以在Gzip注释中设置不同的参数。

@GZIP ( force = true, threshold = 512 )

翻译自: https://www.javacodegeeks.com/2014/11/adding-gzip-compression-in-cxf-apis-and-interceptors.html

在CXF API和拦截器中添加Gzip压缩相关推荐

  1. cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩

    cxf添加拦截器 如今,由于我们在响应中发送大量数据,因此必须对API响应执行Gziping. 它节省了网络带宽和交付时间,当然还节省了Internet上的空间. CXF提供了以多种方式使用Gzip压 ...

  2. 在拦截器中跳转页面和全局的loading且修改loading的图标

    一般axios请求会进行封装,封装的文件中会对拦截器.错误码.全局的loading等做相应的处理. 一.全局loading的实现如下: 在request拦截器中添加loading的配置 import ...

  3. WebServices中使用cxf开发日志拦截器以及自定义拦截器

    首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截 ...

  4. 三、CXF对Interceptor拦截器的支持

    前面在Axis中介绍过Axis的Handler,这里CXF的Interceptor就和Handler的功能类似.在每个请求响应之前或响应之后,做一些事情.这里的Interceptor就和Filter. ...

  5. vue 无法进入response拦截器_Vue添加请求拦截器

    一.现象 统一处理错误及配置请求信息 二.解决 1.安装 axios  , 命令: npm install axios --save-dev 2.在根目录的config目录下新建文件 axios.js ...

  6. java 拦截器响应中取所有参数,spring boot拦截器中获取request post请求中的参数

    最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...

  7. 为什么你写的拦截器中不能注入Java bean?

    一.如何实现拦截器 在Spring Boot项目中,拦截器经常被用来做登陆验证,日志记录等操作.拦截器是Spring提供的,所以可以将拦截器注成bean,由IOC容器来管理.实现拦截器的方式很简单,主 ...

  8. 拦截器获取请求参数post_spring boot拦截器中获取request post请求中的参数

    最近有一个需要从拦截器中获取post请求的参数的需求,这里记录一下处理过程中出现的问题. 首先想到的就是request.getParameter(String )方法,但是这个方法只能在get请求中取 ...

  9. Spring中的Interceptor拦截器中使用@Autowired注解,在运行时会出现空指针

    在开发登录模块时,我们会使用拦截器进行是否已登录的校验等,通常会通过如下自定义一个拦截器 package com.demo.interceptors;import com.demo.service.I ...

最新文章

  1. R语言dplyr包使用case_when函数和mutate函数生成新的数据列实战:基于单列生成新的数据列、基于多列生成新的数据列
  2. pyplot.plot画图turtouil
  3. 使用 PHPMAILER 发送邮件实例
  4. 对话李飞飞,揭秘国际体育赛事风“云”背后的黑科技
  5. 【Android】Android Service 服务
  6. Nearest Opposite Parity(反向建边+spfa)
  7. 被 C# 的 ThreadStatic 标记的静态变量,都存放在哪里了?
  8. html图片宽度高度等比例绽放,css图片自动绽放大小,左右,上下居中
  9. java 字符串缓冲区_详解Java中字符串缓冲区StringBuffer类的使用
  10. 【计算机组成原理】CPU
  11. python深入和扩展_用Python来扩展Postgresql(一)
  12. easyui 时间段校验,开始时间小于结束时间,并且时间间隔不能超过30天
  13. ASP.NET MVC入门教程(二)文章列表页、内容页的实现
  14. 山东工商学院第五届ACM趣味编程大赛感想
  15. 胎压检测c语言pta,汽车胎压检测系统的设计与实现
  16. 下载webex client的remover
  17. pod中mysql配置文件修改_Pod中的secret,configmap,downwardapi的使用记录
  18. VGA与DVI接口以及HDMI
  19. 理解 Mach-O 并提高程序启动速度
  20. 用计算机模拟无理数e的计算,动图讲解自然常数e,无理数e带你发现数学之美!...

热门文章

  1. SpringCloudGateway起步
  2. 150. 逆波兰表达式求值---JAVA---LeetCode
  3. Android隐藏状态栏和标题栏
  4. android volley 上传图片 和参数,Android使用Volley实现上传文件功能
  5. 系统架构设计师考试4
  6. 输入一个英文句子,翻转句子中单词的顺序 例如输入“I am a student.”,则输出“student. a am I”。
  7. ftb测试软件,EXFO推出FTB-2光纤测试平台
  8. db9针232接口波特率标准_理解串口通信以及232,485,422常见问题
  9. 本地方法(JNI)——访问数组元素+错误处理
  10. XML—— XSL 转换