miduo_pay/src/main/java/com/jmfy/util/Connect.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;
}
}