generated from root/miduo_server
43 lines
1.5 KiB
Java
43 lines
1.5 KiB
Java
package com.jmfy.util;
|
|
|
|
import com.mongodb.MongoClient;
|
|
import com.mongodb.MongoClientURI;
|
|
import com.mongodb.client.MongoIterable;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import java.util.Map;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
/**
|
|
* @author Administrator
|
|
*/
|
|
@Component
|
|
public class Connect {
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(Connect.class);
|
|
@Value("${spring.data.mongodb.uri}")
|
|
private String mongoClientUrl;
|
|
private Map<String, MongoTemplate> mongoTemplateMap = new ConcurrentHashMap<>();
|
|
@PostConstruct
|
|
public void init() {
|
|
MongoClient mongoClient = new MongoClient(new MongoClientURI(mongoClientUrl));
|
|
MongoIterable<String> databaseNames = mongoClient.listDatabaseNames();
|
|
for (String dbName : databaseNames) {
|
|
LOGGER.info("oldMongomaps-->dbName={}", dbName);
|
|
MongoTemplate mongoTemplate = new MongoTemplate(mongoClient, dbName);
|
|
mongoTemplateMap.put(dbName, mongoTemplate);
|
|
}
|
|
}
|
|
public MongoTemplate getMongoTemplete(String dbName) throws Exception {
|
|
if (!mongoTemplateMap.containsKey(dbName)) {
|
|
throw new Exception(dbName + " does not exist");
|
|
}
|
|
MongoTemplate mongoTemplate = mongoTemplateMap.get(dbName);
|
|
return mongoTemplate;
|
|
}
|
|
}
|