From 5f9e366204d92dd55f3cd3fd3581c37c24f50ee3 Mon Sep 17 00:00:00 2001 From: "wenqi.huang" Date: Wed, 10 Apr 2019 16:35:30 +0800 Subject: [PATCH 1/2] Call MimeTypeUtils::parseMimeType earlier to improve performance --- .../boot/web/embedded/netty/CompressionCustomizer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java index 4a0aff7bfc3f..6769ecbc9b70 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java @@ -17,7 +17,9 @@ package org.springframework.boot.web.embedded.netty; import java.util.Arrays; +import java.util.List; import java.util.function.BiPredicate; +import java.util.stream.Collectors; import io.netty.handler.codec.http.HttpHeaderNames; import io.netty.handler.codec.http.HttpHeaders; @@ -64,6 +66,10 @@ private CompressionPredicate getMimeTypesPredicate(String[] mimeTypes) { if (ObjectUtils.isEmpty(mimeTypes)) { return ALWAYS_COMPRESS; } + + List mimeTypeList = Arrays.stream(mimeTypes).map(MimeTypeUtils::parseMimeType) + .collect(Collectors.toList()); + return (request, response) -> { String contentType = response.responseHeaders() .get(HttpHeaderNames.CONTENT_TYPE); @@ -71,7 +77,7 @@ private CompressionPredicate getMimeTypesPredicate(String[] mimeTypes) { return false; } MimeType contentMimeType = MimeTypeUtils.parseMimeType(contentType); - return Arrays.stream(mimeTypes).map(MimeTypeUtils::parseMimeType) + return mimeTypeList.stream() .anyMatch((candidate) -> candidate.isCompatibleWith(contentMimeType)); }; } From 1b4bd4a72e745bdfee4ff06bbaaeef2d12e686ce Mon Sep 17 00:00:00 2001 From: "wenqi.huang" Date: Wed, 10 Apr 2019 16:53:20 +0800 Subject: [PATCH 2/2] Call MimeTypeUtils::parseMimeType earlier to improve performance --- .../boot/web/embedded/netty/CompressionCustomizer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java index 6769ecbc9b70..2bfcdd1a7945 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java @@ -67,8 +67,8 @@ private CompressionPredicate getMimeTypesPredicate(String[] mimeTypes) { return ALWAYS_COMPRESS; } - List mimeTypeList = Arrays.stream(mimeTypes).map(MimeTypeUtils::parseMimeType) - .collect(Collectors.toList()); + List mimeTypeList = Arrays.stream(mimeTypes) + .map(MimeTypeUtils::parseMimeType).collect(Collectors.toList()); return (request, response) -> { String contentType = response.responseHeaders()