diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfiguration.java index 8b3d7230afba..e6e0e4c51631 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfiguration.java @@ -29,6 +29,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; +import org.springframework.core.io.buffer.DataBufferFactory; +import org.springframework.core.io.buffer.DefaultDataBufferFactory; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory; @@ -37,6 +39,7 @@ import org.springframework.data.mongodb.core.convert.MongoCustomConversions; import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; +import org.springframework.data.mongodb.gridfs.ReactiveGridFsTemplate; /** * {@link EnableAutoConfiguration Auto-configuration} for Spring Data's reactive mongo @@ -49,6 +52,7 @@ * to the {@literal test} database. * * @author Mark Paluch + * @author Artsiom Yudovin * @since 2.0.0 */ @Configuration(proxyBeanMethods = false) @@ -85,4 +89,20 @@ public MappingMongoConverter mappingMongoConverter(MongoMappingContext context, return mappingConverter; } + @Bean + @ConditionalOnMissingBean + public DataBufferFactory dataBufferFactory() { + return new DefaultDataBufferFactory(); + } + + @Bean + @ConditionalOnMissingBean + public ReactiveGridFsTemplate reactiveGridFsTemplate( + ReactiveMongoDatabaseFactory reactiveMongoDbFactory, + MappingMongoConverter mappingMongoConverter, + DataBufferFactory dataBufferFactory) { + return new ReactiveGridFsTemplate(dataBufferFactory, reactiveMongoDbFactory, + mappingMongoConverter, null); + } + } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfigurationTests.java index 78646e7a3509..3e23a6b25b03 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfigurationTests.java @@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.mongo.MongoReactiveAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; +import org.springframework.data.mongodb.gridfs.ReactiveGridFsTemplate; import static org.assertj.core.api.Assertions.assertThat; @@ -30,6 +31,7 @@ * Tests for {@link MongoReactiveDataAutoConfiguration}. * * @author Mark Paluch + * @author Artsiom Yudovin */ public class MongoReactiveDataAutoConfigurationTests { @@ -55,4 +57,10 @@ public void backsOffIfMongoClientBeanIsNotPresent() { .doesNotHaveBean(MongoReactiveDataAutoConfiguration.class)); } + @Test + public void gridFsTemplateExists() { + this.contextRunner.run((context) -> assertThat(context) + .hasSingleBean(ReactiveGridFsTemplate.class)); + } + }