cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩
cxf添加攔截器
如今,由于我們?cè)陧憫?yīng)中發(fā)送大量數(shù)據(jù),因此必須對(duì)API響應(yīng)執(zhí)行Gziping。 它節(jié)省了網(wǎng)絡(luò)帶寬和交付時(shí)間,當(dāng)然還節(jié)省了Internet上的空間。
CXF提供了以多種方式使用Gzip壓縮的選項(xiàng)。
藍(lán)圖:
<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攔截器列表中注冊(cè)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帶有一個(gè)選項(xiàng),用于將閾值設(shè)置為字節(jié)數(shù)。 如果響應(yīng)大小低于此閾值,則將不會(huì)對(duì)其進(jìn)行壓縮。 當(dāng)我們僅發(fā)送空列表和狀態(tài)消息/代碼時(shí),這將非常有用,因?yàn)閴嚎s這些小的響應(yīng)將在服務(wù)器端增加開銷。
但是,我們還必須考慮另一個(gè)因素,即請(qǐng)求響應(yīng)的用戶數(shù)量。 因此,請(qǐng)考慮可能出現(xiàn)的所有情況,以適當(dāng)?shù)卦O(shè)置此值。
@GZIP現(xiàn)在,我們可以在任何Web服務(wù)控制器上使用此批注,以對(duì)該類中提供的所有API實(shí)施壓縮。
@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注釋中設(shè)置不同的參數(shù)。
@GZIP ( force = true, threshold = 512 )翻譯自: https://www.javacodegeeks.com/2014/11/adding-gzip-compression-in-cxf-apis-and-interceptors.html
cxf添加攔截器
總結(jié)
以上是生活随笔為你收集整理的cxf添加拦截器_在CXF API和拦截器中添加Gzip压缩的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mockito 单元测试_使用FizzB
- 下一篇: 危废备案是什么(危废的备案)