From 043e5ff0f52ab0b2c3400ae9f265806e5e24713a Mon Sep 17 00:00:00 2001 From: dugenkui03 Date: Mon, 21 Feb 2022 22:45:41 +0800 Subject: [PATCH] Reuse BatchLoaderRegistry in GraphQlService See gh-29929 --- .../graphql/GraphQlAutoConfiguration.java | 4 ++-- .../graphql/GraphQlAutoConfigurationTests.java | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfiguration.java index d2348a4d22..8597b6f713 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfiguration.java @@ -123,9 +123,9 @@ public class GraphQlAutoConfiguration { @Bean @ConditionalOnMissingBean - public GraphQlService graphQlService(GraphQlSource graphQlSource) { + public GraphQlService graphQlService(GraphQlSource graphQlSource, BatchLoaderRegistry batchLoaderRegistry) { ExecutionGraphQlService service = new ExecutionGraphQlService(graphQlSource); - service.addDataLoaderRegistrar(this.batchLoaderRegistry); + service.addDataLoaderRegistrar(batchLoaderRegistry); return service; } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfigurationTests.java index e3c58bc478..14656cc3d6 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlAutoConfigurationTests.java @@ -169,6 +169,14 @@ class GraphQlAutoConfigurationTests { }); } + @Test + void shouldConfigCustomBatchLoaderRegistry() { + this.contextRunner.withUserConfiguration(CustomBatchLoaderRegistryConfiguration.class).run((context) -> { + assertThat(context).getBeanNames(BatchLoaderRegistry.class).containsOnly("customBatchLoaderRegistry"); + assertThat(context).hasSingleBean(BatchLoaderRegistry.class); + }); + } + @Configuration(proxyBeanMethods = false) static class CustomGraphQlBuilderConfiguration { @@ -253,4 +261,14 @@ class GraphQlAutoConfigurationTests { } + @Configuration(proxyBeanMethods = false) + static class CustomBatchLoaderRegistryConfiguration { + + @Bean + BatchLoaderRegistry customBatchLoaderRegistry() { + return mock(BatchLoaderRegistry.class); + } + + } + }