《spring data mongodb 代碼連接數據庫方式》要點:
本文介紹了spring data mongodb 代碼連接數據庫方式,希望對您有用。如果有疑問,可以聯系我們。
相關主題:非關系型數據庫
平時我們用spring data mongodb都是采用xml配置的方式來鏈接數據庫
但是往往有的時候需要用代碼的方式來實現.
比如說我們有可能要同時操作多個db的數據,總不能一個db配置一個DbFactory吧.
這個時候就需要代碼來動態創建和獲取了.
下面貼上實現的代碼,里面的參數都寫死了,大家在做封裝的時候可以作為參數傳進去獲取配置文件也行.
@Configuration
public class AppConfig {
public @Bean MongoDbFactory mongoDbFactory() throws Exception {
//mongodb地址,集群環境填多個
List<ServerAddress> seeds = Arrays.asList(new ServerAddress("localhost", 27017));
//用戶認證信息,參數為用戶,數據庫,密碼
//MongoCredential com.mongodb.MongoCredential.createCredential(String userName, String database, char[] password)
MongoCredential mongoCredential = MongoCredential.createCredential("cxytiandi", "cxytiandi", "cxytiandi".toCharArray());
List<MongoCredential> credentialsList = Arrays.asList(mongoCredential);
//連接池參數配置
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
// 每個主機的連接數
int connPerHost = 20;
builder.connectionsPerHost(connPerHost);
// 線程隊列數
int threadCount = 20;
builder.threadsAllowedToBlockForConnectionMultiplier(threadCount);
// 最大等待連接的線程阻塞時間(單位:毫秒)
int maxWaitTime = 1000;
builder.maxWaitTime(maxWaitTime);
// 連接超時的時間.0是默認和無限(單位:毫秒)
int timeOut = 1000;
builder.connectTimeout(timeOut);
MongoClientOptions options = builder.build();
MongoClient mongoClient = new MongoClient(seeds, credentialsList, options);
//這里第二個參數也就是cxytiandi是用戶認證的庫名,在哪個庫認證就表示登陸哪個庫
return new SimpleMongoDbFactory(mongoClient, "cxytiandi");
}
public @Bean MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongoDbFactory());
}
public static void main(String[] args) throws UnknownHostException, Exception {
AppConfig appConfig = new AppConfig();
MongoTemplate mongoTemplate = appConfig.mongoTemplate();
mongoTemplate.getCollectionNames().forEach(System.out::println);
}
}
維易PHP培訓學院每天發布《spring data mongodb 代碼連接數據庫方式》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。