Add auto-configuration support for ReactiveGridFsTemplate

See gh-16467
This commit is contained in:
ayudovin
2019-04-05 11:48:19 +03:00
committed by Stephane Nicoll
parent 1a05851fe2
commit d9c9ed1d52
2 changed files with 28 additions and 0 deletions

View File

@@ -29,6 +29,8 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
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.MongoConverter;
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 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
* to the {@literal test} database.
*
* @author Mark Paluch
* @author Artsiom Yudovin
* @since 2.0.0
*/
@Configuration(proxyBeanMethods = false)
@@ -85,4 +89,20 @@ public class MongoReactiveDataAutoConfiguration {
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);
}
}

View File

@@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoCon
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 @@ import static org.assertj.core.api.Assertions.assertThat;
* Tests for {@link MongoReactiveDataAutoConfiguration}.
*
* @author Mark Paluch
* @author Artsiom Yudovin
*/
public class MongoReactiveDataAutoConfigurationTests {
@@ -55,4 +57,10 @@ public class MongoReactiveDataAutoConfigurationTests {
.doesNotHaveBean(MongoReactiveDataAutoConfiguration.class));
}
@Test
public void gridFsTemplateExists() {
this.contextRunner.run((context) -> assertThat(context)
.hasSingleBean(ReactiveGridFsTemplate.class));
}
}