diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java index 82dcdde9..6390d619 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/GraphQlServiceAutoConfiguration.java @@ -18,6 +18,7 @@ package org.springframework.graphql.boot; import graphql.GraphQL; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -28,14 +29,14 @@ import org.springframework.format.support.DefaultFormattingConversionService; import org.springframework.graphql.GraphQlService; import org.springframework.graphql.data.method.annotation.support.AnnotatedControllerConfigurer; import org.springframework.graphql.execution.BatchLoaderRegistry; +import org.springframework.graphql.execution.DataLoaderRegistrar; import org.springframework.graphql.execution.DefaultBatchLoaderRegistry; import org.springframework.graphql.execution.ExecutionGraphQlService; import org.springframework.graphql.execution.GraphQlSource; -import org.springframework.graphql.web.WebGraphQlHandler; /** * {@link EnableAutoConfiguration Auto-configuration} for creating a - * {@link WebGraphQlHandler}. + * {@link GraphQlService}. * * @author Brian Clozel * @since 1.0.0 @@ -45,19 +46,17 @@ import org.springframework.graphql.web.WebGraphQlHandler; @AutoConfigureAfter(GraphQlAutoConfiguration.class) public class GraphQlServiceAutoConfiguration { - private final BatchLoaderRegistry batchLoaderRegistry = new DefaultBatchLoaderRegistry(); - @Bean @ConditionalOnMissingBean public BatchLoaderRegistry batchLoaderRegistry() { - return this.batchLoaderRegistry; + return new DefaultBatchLoaderRegistry(); } @Bean @ConditionalOnMissingBean - public GraphQlService graphQlService(GraphQlSource graphQlSource) { + public GraphQlService graphQlService(GraphQlSource graphQlSource, ObjectProvider dataLoaderRegistrars) { ExecutionGraphQlService service = new ExecutionGraphQlService(graphQlSource); - service.addDataLoaderRegistrar(this.batchLoaderRegistry); + dataLoaderRegistrars.forEach(service::addDataLoaderRegistrar); return service; } diff --git a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/test/GraphQlTest.java b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/test/GraphQlTest.java index b699f734..13b21339 100644 --- a/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/test/GraphQlTest.java +++ b/graphql-spring-boot-starter/src/main/java/org/springframework/graphql/boot/test/GraphQlTest.java @@ -49,6 +49,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; *