-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathMongoConfig.java
78 lines (68 loc) · 2.68 KB
/
MongoConfig.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.example.demo.domain;
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.client.MongoClient;
import com.mongodb.connection.ConnectionPoolSettings;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
import org.springframework.data.mongodb.gridfs.GridFsTemplate;
@Configuration
@PropertySource("classpath:mongo.properties")
/*public class MongoConfig {
@Value("${mongo.uri}")
private String mongoUri;
@Bean
public MongoClient mongoClient() {
return MongoClients.create(mongoUri);
}
@Bean
public MongoTemplate mongoTemplate(MongoClient client) {
return new MongoTemplate(client, "blogdb");
}
}*/
public class MongoConfig extends AbstractMongoClientConfiguration {
@Value("${mongo.uri}")
private String mongoUri;
@Override
@Bean
public MongoClient mongoClient() {
return super.mongoClient();
}
@Override
protected String getDatabaseName() {
return "blogdb";
}
@Override
protected void configureConverters(MongoCustomConversions.MongoConverterConfigurationAdapter adapter) {
//add extra converters
}
@Override
protected void configureClientSettings(MongoClientSettings.Builder builder) {
builder
//.uuidRepresentation(UuidRepresentation.STANDARD)
.applyConnectionString(new ConnectionString(mongoUri))
.applyToConnectionPoolSettings(pool -> pool
.applySettings(
ConnectionPoolSettings.builder()
.maxConnecting(5)
.build()
)
);
// builder
// .credential(MongoCredential.createCredential("name", "db", "pwd".toCharArray()))
// .applyToClusterSettings(settings -> {
// settings.hosts(singletonList(new ServerAddress("127.0.0.1", 27017)));
// });
}
// GridFs support
@Bean
public GridFsTemplate gridFsTemplate(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mongoConverter) {
return new GridFsTemplate(mongoDbFactory, mongoConverter);
}
}