Skip to content

Commit b6f79f2

Browse files
andimarekrstoyanchev
authored andcommitted
Only build GraphQL once
See spring-projectsgh-37
1 parent 3843e83 commit b6f79f2

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebFluxGraphQLAutoConfiguration.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,16 @@ public class WebFluxGraphQLAutoConfiguration {
5858

5959
private static final Log logger = LogFactory.getLog(WebFluxGraphQLAutoConfiguration.class);
6060

61+
@Bean
62+
public GraphQL graphQL(GraphQL.Builder graphQLBuilder) {
63+
return graphQLBuilder.build();
64+
}
6165

6266
@Bean
6367
@ConditionalOnMissingBean
64-
public GraphQLHttpHandler graphQLHandler(GraphQL.Builder graphQLBuilder, ObjectProvider<WebInterceptor> interceptors) {
65-
return new GraphQLHttpHandler(graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList()));
68+
public GraphQLHttpHandler graphQLHandler(GraphQL graphQL, ObjectProvider<WebInterceptor> interceptors) {
69+
return new GraphQLHttpHandler(graphQL, interceptors.orderedStream().collect(Collectors.toList()));
6670
}
67-
6871
@Bean
6972
public RouterFunction<ServerResponse> graphQLEndpoint(
7073
GraphQLHttpHandler handler, GraphQLProperties properties, ResourceLoader resourceLoader) {
@@ -88,11 +91,11 @@ static class WebSocketConfiguration {
8891
@Bean
8992
@ConditionalOnMissingBean
9093
public GraphQLWebSocketHandler graphQLWebSocketHandler(
91-
GraphQL.Builder graphQLBuilder, GraphQLProperties properties, ServerCodecConfigurer configurer,
94+
GraphQL graphql, GraphQLProperties properties, ServerCodecConfigurer configurer,
9295
ObjectProvider<WebInterceptor> interceptors) {
9396

9497
return new GraphQLWebSocketHandler(
95-
graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList()),
98+
graphql, interceptors.orderedStream().collect(Collectors.toList()),
9699
configurer, properties.getWebsocket().getConnectionInitTimeout()
97100
);
98101
}

graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/WebMvcGraphQLAutoConfiguration.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,16 @@ public class WebMvcGraphQLAutoConfiguration {
6565

6666
private static final Log logger = LogFactory.getLog(WebMvcGraphQLAutoConfiguration.class);
6767

68+
@Bean
69+
public GraphQL graphQL(GraphQL.Builder graphQLBuilder) {
70+
return graphQLBuilder.build();
71+
}
6872

6973
@Bean
7074
@ConditionalOnMissingBean
71-
public GraphQLHttpHandler graphQLHandler(GraphQL.Builder graphQLBuilder,
75+
public GraphQLHttpHandler graphQLHandler(GraphQL graphQL,
7276
ObjectProvider<WebInterceptor> interceptors) {
73-
return new GraphQLHttpHandler(graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList()));
77+
return new GraphQLHttpHandler(graphQL, interceptors.orderedStream().collect(Collectors.toList()));
7478
}
7579

7680
@Bean
@@ -98,7 +102,7 @@ static class WebSocketConfiguration {
98102
@Bean
99103
@ConditionalOnMissingBean
100104
public GraphQLWebSocketHandler graphQLWebSocketHandler(
101-
GraphQL.Builder graphQLBuilder, GraphQLProperties properties, HttpMessageConverters converters,
105+
GraphQL graphQL, GraphQLProperties properties, HttpMessageConverters converters,
102106
ObjectProvider<WebInterceptor> interceptors) {
103107

104108
HttpMessageConverter<?> converter = converters.getConverters().stream()
@@ -107,7 +111,7 @@ public GraphQLWebSocketHandler graphQLWebSocketHandler(
107111
.orElseThrow(() -> new IllegalStateException("No JSON converter"));
108112

109113
return new GraphQLWebSocketHandler(
110-
graphQLBuilder.build(), interceptors.orderedStream().collect(Collectors.toList()),
114+
graphQL, interceptors.orderedStream().collect(Collectors.toList()),
111115
converter, properties.getWebsocket().getConnectionInitTimeout()
112116
);
113117
}

0 commit comments

Comments
 (0)