|
1 | 1 | package com.github.paulcwarren.springdocs.config.data;
|
2 | 2 |
|
3 |
| -import com.mongodb.MongoClient; |
4 |
| -import com.mongodb.MongoClientURI; |
5 |
| - |
| 3 | +import com.mongodb.client.MongoClient; |
| 4 | +import com.mongodb.client.MongoClients; |
6 | 5 | import org.springframework.beans.factory.annotation.Value;
|
7 | 6 | import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
8 | 7 | import org.springframework.boot.autoconfigure.domain.EntityScan;
|
9 | 8 | import org.springframework.context.annotation.Bean;
|
10 | 9 | import org.springframework.context.annotation.Configuration;
|
11 | 10 | import org.springframework.context.annotation.Profile;
|
12 |
| -import org.springframework.data.mongodb.MongoDbFactory; |
13 |
| -import org.springframework.data.mongodb.config.AbstractMongoConfiguration; |
14 |
| -import org.springframework.data.mongodb.core.MongoTemplate; |
15 |
| -import org.springframework.data.mongodb.core.SimpleMongoDbFactory; |
| 11 | +import org.springframework.data.mongodb.MongoDatabaseFactory; |
| 12 | +import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration; |
| 13 | +import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; |
| 14 | +import org.springframework.data.mongodb.core.convert.MappingMongoConverter; |
| 15 | +import org.springframework.data.mongodb.gridfs.GridFsTemplate; |
16 | 16 | import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
17 | 17 |
|
18 | 18 | @Configuration
|
19 | 19 | @EnableAutoConfiguration
|
20 |
| -@EnableMongoRepositories(basePackages = {"com.github.paulcwarren.springdocs.repositories.mongodb"}) |
| 20 | +@EnableMongoRepositories(basePackages = {"com.github.paulcwarren.springdocs.repositories"}) |
21 | 21 | @EntityScan(basePackages="com.github.paulcwarren.springdocs.domain")
|
22 | 22 | @Profile("mongodb")
|
23 |
| -public class MongoConfig extends AbstractMongoConfiguration { |
| 23 | +public class MongoConfig extends AbstractMongoClientConfiguration { |
24 | 24 |
|
25 | 25 | @Value("#{environment.SPRINGDOCS_MDB_URL}")
|
26 |
| - private String mongoDbUrl; |
27 |
| - |
28 |
| - @Bean |
29 |
| - public MongoTemplate mongoTemplate(MongoDbFactory mongoDbFactory) { |
30 |
| - return new MongoTemplate(mongoDbFactory); |
31 |
| - } |
32 |
| - |
33 |
| - @Override |
34 |
| - public MongoDbFactory mongoDbFactory() { |
35 |
| - |
36 |
| - if (System.getenv("SPRINGDOCS_MDB_URL") != null) { |
37 |
| - |
38 |
| - return new SimpleMongoDbFactory(new MongoClientURI(mongoDbUrl)); |
39 |
| - } else { |
40 |
| - |
41 |
| - return new SimpleMongoDbFactory(new MongoClientURI("mongodb://localhost/springdocs")); |
42 |
| - } |
43 |
| - } |
| 26 | + private String mongoDbUrl = "mongodb://localhost:27017"; |
44 | 27 |
|
45 | 28 | @Override
|
46 | 29 | protected String getDatabaseName() {
|
47 | 30 | return "springdocs";
|
48 | 31 | }
|
49 | 32 |
|
50 |
| - @Override |
| 33 | + @Bean |
51 | 34 | public MongoClient mongoClient() {
|
52 |
| - return new MongoClient(); |
| 35 | + return MongoClients.create(mongoDbUrl); |
| 36 | + } |
| 37 | + |
| 38 | + @Bean |
| 39 | + public GridFsTemplate gridFsTemplate(MappingMongoConverter mongoConverter) { |
| 40 | + return new GridFsTemplate(mongoDbFactory(), mongoConverter); |
| 41 | + } |
| 42 | + |
| 43 | + @Bean |
| 44 | + public MongoDatabaseFactory mongoDbFactory() { |
| 45 | + return new SimpleMongoClientDatabaseFactory(mongoClient(), getDatabaseName()); |
53 | 46 | }
|
54 | 47 | }
|
0 commit comments