类org.springframework.boot.web.server.Compression源码实例Demo

下面列出了怎么用org.springframework.boot.web.server.Compression的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
void shouldReturnCompressedResponse() {
    final ArmeriaReactiveWebServerFactory factory = factory();
    final Compression compression = new Compression();
    compression.setEnabled(true);
    compression.setMinResponseSize(DataSize.ofBytes(1));
    compression.setMimeTypes(new String[] { "text/plain" });
    compression.setExcludedUserAgents(new String[] { "unknown-agent/[0-9]+\\.[0-9]+\\.[0-9]+$" });
    factory.setCompression(compression);
    runEchoServer(factory, server -> {
        final AggregatedHttpResponse res = sendPostRequest(httpClient(server));
        assertThat(res.status()).isEqualTo(com.linecorp.armeria.common.HttpStatus.OK);
        assertThat(res.headers().get(HttpHeaderNames.CONTENT_ENCODING)).isEqualTo("gzip");
        assertThat(res.contentUtf8()).isNotEqualTo("hello");
    });
}
 
源代码2 项目: vertx-spring-boot   文件: CompressionCustomizer.java
@Override
public HttpServerOptions apply(HttpServerOptions options) {
    Compression compression = factory.getCompression();

    if (compression != null) {
        options.setCompressionSupported(compression.getEnabled());
    }

    return options;
}
 
@Test
void shouldReturnNonCompressedResponse_dueToContentType() {
    final ArmeriaReactiveWebServerFactory factory = factory();
    final Compression compression = new Compression();
    compression.setEnabled(true);
    compression.setMinResponseSize(DataSize.ofBytes(1));
    compression.setMimeTypes(new String[] { "text/html" });
    factory.setCompression(compression);
    runEchoServer(factory, server -> {
        final AggregatedHttpResponse res = sendPostRequest(httpClient(server));
        validateEchoResponse(res);
        assertThat(res.headers().get(HttpHeaderNames.CONTENT_ENCODING)).isNull();
    });
}
 
@Test
void shouldReturnNonCompressedResponse_dueToUserAgent() {
    final ArmeriaReactiveWebServerFactory factory = factory();
    final Compression compression = new Compression();
    compression.setEnabled(true);
    compression.setMinResponseSize(DataSize.ofBytes(1));
    compression.setExcludedUserAgents(new String[] { "test-agent/[0-9]+\\.[0-9]+\\.[0-9]+$" });
    factory.setCompression(compression);
    runEchoServer(factory, server -> {
        final AggregatedHttpResponse res = sendPostRequest(httpClient(server));
        validateEchoResponse(res);
        assertThat(res.headers().get(HttpHeaderNames.CONTENT_ENCODING)).isNull();
    });
}
 
CompressionCustomizer(Compression compression) {
	this.compression = compression;
}
 
源代码6 项目: armeria   文件: ArmeriaReactiveWebServerFactory.java
private void configureArmeriaService(ServerBuilder sb, ArmeriaSettings settings) {
    final MeterIdPrefixFunctionFactory meterIdPrefixFunctionFactory =
            settings.isEnableMetrics() ? firstNonNull(findBean(MeterIdPrefixFunctionFactory.class),
                                                      MeterIdPrefixFunctionFactory.ofDefault())
                                       : null;

    configurePorts(sb, settings.getPorts());
    final DocServiceBuilder docServiceBuilder = DocService.builder();
    configureThriftServices(sb,
                            docServiceBuilder,
                            findBeans(ThriftServiceRegistrationBean.class),
                            meterIdPrefixFunctionFactory,
                            settings.getDocsPath());
    configureGrpcServices(sb,
                          docServiceBuilder,
                          findBeans(GrpcServiceRegistrationBean.class),
                          meterIdPrefixFunctionFactory,
                          settings.getDocsPath());
    configureHttpServices(sb,
                          findBeans(HttpServiceRegistrationBean.class),
                          meterIdPrefixFunctionFactory);
    configureAnnotatedServices(sb,
                               docServiceBuilder,
                               findBeans(AnnotatedServiceRegistrationBean.class),
                               meterIdPrefixFunctionFactory,
                               settings.getDocsPath());
    configureServerWithArmeriaSettings(sb, settings,
                                       firstNonNull(findBean(MeterRegistry.class), Metrics.globalRegistry),
                                       findBeans(HealthChecker.class));
    if (settings.getSsl() != null) {
        configureTls(sb, settings.getSsl());
    }

    final ArmeriaSettings.Compression compression = settings.getCompression();
    if (compression != null && compression.isEnabled()) {
        final long parsed = parseDataSize(compression.getMinResponseSize());
        sb.decorator(contentEncodingDecorator(compression.getMimeTypes(),
                                              compression.getExcludedUserAgents(),
                                              Ints.saturatedCast(parsed)));
    }

    if (!Strings.isNullOrEmpty(settings.getDocsPath())) {
        sb.serviceUnder(settings.getDocsPath(), docServiceBuilder.build());
    }
}
 
 类所在包
 类方法
 同包方法