Skip to content

Commit b3f94c4

Browse files
wenqi.huangsnicoll
authored andcommitted
Cache MimeTypes to improve performance
See gh-16507
1 parent 0875a07 commit b3f94c4

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/CompressionCustomizer.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
package org.springframework.boot.web.embedded.netty;
1818

1919
import java.util.Arrays;
20+
import java.util.List;
2021
import java.util.function.BiPredicate;
22+
import java.util.stream.Collectors;
2123

2224
import io.netty.handler.codec.http.HttpHeaderNames;
2325
import io.netty.handler.codec.http.HttpHeaders;
@@ -67,14 +69,18 @@ private CompressionPredicate getMimeTypesPredicate(String[] mimeTypes) {
6769
if (ObjectUtils.isEmpty(mimeTypes)) {
6870
return ALWAYS_COMPRESS;
6971
}
72+
73+
List<MimeType> mimeTypeList = Arrays.stream(mimeTypes)
74+
.map(MimeTypeUtils::parseMimeType).collect(Collectors.toList());
75+
7076
return (request, response) -> {
7177
String contentType = response.responseHeaders()
7278
.get(HttpHeaderNames.CONTENT_TYPE);
7379
if (StringUtils.isEmpty(contentType)) {
7480
return false;
7581
}
7682
MimeType contentMimeType = MimeTypeUtils.parseMimeType(contentType);
77-
return Arrays.stream(mimeTypes).map(MimeTypeUtils::parseMimeType)
83+
return mimeTypeList.stream()
7884
.anyMatch((candidate) -> candidate.isCompatibleWith(contentMimeType));
7985
};
8086
}

0 commit comments

Comments
 (0)