cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩
cxf添加拦截器
如今,由于我们在响应中发送大量数据,因此必须对API响应执行Gziping。 它节省了网络带宽和交付时间,当然还节省了Internet上的空间。
CXF提供了以多种方式使用Gzip压缩的选项。
- 蓝图
- 注解
蓝图:
<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添加拦截器
cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩相关推荐
- 添加 pcre-devel 源_植物精油在犊牛开口料中添加效果总结(一)
总结: 1.提高犊牛断奶前ADG.ADFI.G/F.断奶重. 2.提高犊牛断奶后的生长性能. 3.降低断奶后腹泻率,提前断奶. 4.促进断奶前的骨骼发育. 5.与益生元的组合效果更佳. 6.可替代莫能 ...
- 在桌面上添加或删除计算机网络等图标,如何在Windows 10中添加或删除默认桌面图标...
我们将看到如何在Windows 10中添加或 让我们开始吧: 在Windows 10设备中,选择"开始"按钮,然后选择"设置". 如何在Windows 10中添 ...
- python 生成器装饰器_七.python迭代器生成器装饰器
1.迭代器 1.1 什么是可迭代对象(Iterable)? 定义:可以直接作用于for循环的对象统称为可迭代对象,即Iterable. 可迭代对象包括: 1.集合数据类型:如list.tuple.di ...
- 自定义制作音频播放器_使用HTML5制作音频播放器,第3部分:微数据和皮肤
自定义制作音频播放器 In the first two articles of this series I introduced the concept and code of a customize ...
- 自定义音频播放器_创建自定义HTML5音频播放器
自定义音频播放器 在本教程中,我将向您介绍HTML5音频,并向您展示如何创建自己的播放器. 如果您想走捷径,请查看Envato市场上可用的现成的HTML5音频播放器 . 它使您可以从各种来源创建播放列 ...
- 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )
文章目录 一.通过修改 GOT 全局偏移表拦截函数 二.通过在实际被调用的函数中添加跳转代码实现函数拦截 一.通过修改 GOT 全局偏移表拦截函数 使用 GOT 全局偏移表 拦截函数 , 只需要将 G ...
- spring默认缓存管理器_使用Spring的缓存管理器缓存Web内容
spring默认缓存管理器 在这篇文章中,我想向大家展示如何使用Spring的CacheManager,@ Cacheable和JMX批注来缓存和管理Web内容的缓存的基础知识. 想象一下一个网上商店 ...
- 垃圾收集算法,垃圾收集器_为什么我不能关闭垃圾收集器?
垃圾收集算法,垃圾收集器 让我们开始快速回顾一下我作为Java开发人员的职业生涯的早期. 我想消除正在进行的测试中的垃圾回收(GC)暂停. 瞧,当我发现无法完成时,我很生气. 那时,我把问题留在了&q ...
- 带倍速音频播放器_带有播放列表HTML5音频播放器
带倍速音频播放器 HTML5 Audio player with playlist HTML5 audio player. Many of you faced with the task of cre ...
最新文章
- 中科院张士峰:基于深度学习的通用物体检测算法对比探索
- LeetCode-53. 最大子序和-最简单的动态规划(Python3)
- 里bl2和bl3为什么分开_分手挽回:为什么不建议过早同居
- docker安装mysql5.6,安装redis3.2
- Silverlight中使用MVVM(9)-绑定Enum类型数据
- 计算机打开共享网络连接打印机共享打印机,WIN7怎么连接共享打印机?如何设置和连接局域网共享打印机...
- 铁大Facebook——十天冲刺(4)
- mysql 数据库隔离级别_彻底搞懂mysql数据库四种隔离级别,实验实战
- IDEA如何导出war包
- c语言坐标轮换法_优化设计-鲍威尔法程序(c语言)
- 基于RFID的图书馆管理
- PS 色阶、曲线、色相饱和度
- 招聘时最看重应聘者的什么特质?
- 【小白学习之路】Java实现简单的飞机大战小游戏
- MySql自动同步主库数据(Canal)
- 项目管理知识体系指南 PMBOK(第6版)十大知识领域思维导图(总览图)
- 软件开发过程与项目管理(12.软件项目合同计划)
- Altium Designer 20新手上路(一)常见网站及插件推荐
- mysql连接oracle视图_oracle数据库视图
- 细数最暖心的地铁营销事件,你最喜欢哪一个?
热门文章
- jzoj6826-[2020.10.17提高组模拟]隔膜【博弈论】
- P4841,jzoj3303-城市规划【NTT,多项式求逆,dp】
- jzoj4224-食物【多重背包】
- jzoj4230-淬炼神体【0/1分数规划】
- ssl2346-联络员【图论,最小生成树】
- ssl1072-砝码称重【dp练习】
- codeforces1473 E.Minimum Path(分层图最短路)
- 牛客小白月赛 27部分题解
- 2018CCPC吉林赛区(重现赛)补题部分——F线段树待补
- [XSY] 简单的博弈题(博弈+dp+组合数+容斥)