Skip to content

Commit d9c9ed1

Browse files
ayudovinsnicoll
authored andcommitted
Add auto-configuration support for ReactiveGridFsTemplate
See gh-16467
1 parent 1a05851 commit d9c9ed1

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfiguration.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import org.springframework.context.annotation.Bean;
3030
import org.springframework.context.annotation.Configuration;
3131
import org.springframework.context.annotation.Import;
32+
import org.springframework.core.io.buffer.DataBufferFactory;
33+
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
3234
import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory;
3335
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
3436
import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory;
@@ -37,6 +39,7 @@
3739
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
3840
import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
3941
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
42+
import org.springframework.data.mongodb.gridfs.ReactiveGridFsTemplate;
4043

4144
/**
4245
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's reactive mongo
@@ -49,6 +52,7 @@
4952
* to the {@literal test} database.
5053
*
5154
* @author Mark Paluch
55+
* @author Artsiom Yudovin
5256
* @since 2.0.0
5357
*/
5458
@Configuration(proxyBeanMethods = false)
@@ -85,4 +89,20 @@ public MappingMongoConverter mappingMongoConverter(MongoMappingContext context,
8589
return mappingConverter;
8690
}
8791

92+
@Bean
93+
@ConditionalOnMissingBean
94+
public DataBufferFactory dataBufferFactory() {
95+
return new DefaultDataBufferFactory();
96+
}
97+
98+
@Bean
99+
@ConditionalOnMissingBean
100+
public ReactiveGridFsTemplate reactiveGridFsTemplate(
101+
ReactiveMongoDatabaseFactory reactiveMongoDbFactory,
102+
MappingMongoConverter mappingMongoConverter,
103+
DataBufferFactory dataBufferFactory) {
104+
return new ReactiveGridFsTemplate(dataBufferFactory, reactiveMongoDbFactory,
105+
mappingMongoConverter, null);
106+
}
107+
88108
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfigurationTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@
2323
import org.springframework.boot.autoconfigure.mongo.MongoReactiveAutoConfiguration;
2424
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2525
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
26+
import org.springframework.data.mongodb.gridfs.ReactiveGridFsTemplate;
2627

2728
import static org.assertj.core.api.Assertions.assertThat;
2829

2930
/**
3031
* Tests for {@link MongoReactiveDataAutoConfiguration}.
3132
*
3233
* @author Mark Paluch
34+
* @author Artsiom Yudovin
3335
*/
3436
public class MongoReactiveDataAutoConfigurationTests {
3537

@@ -55,4 +57,10 @@ public void backsOffIfMongoClientBeanIsNotPresent() {
5557
.doesNotHaveBean(MongoReactiveDataAutoConfiguration.class));
5658
}
5759

60+
@Test
61+
public void gridFsTemplateExists() {
62+
this.contextRunner.run((context) -> assertThat(context)
63+
.hasSingleBean(ReactiveGridFsTemplate.class));
64+
}
65+
5866
}

0 commit comments

Comments
 (0)