前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring data mongodb 代码连接数据库方式

spring data mongodb 代码连接数据库方式

作者头像
猿天地
发布2018-04-03 12:34:11
1.5K0
发布2018-04-03 12:34:11
举报
文章被收录于专栏:猿天地猿天地

平时我们用spring data mongodb都是采用xml配置的方式来链接数据库

但是往往有的时候需要用代码的方式来实现。

比如说我们有可能要同时操作多个db的数据,总不能一个db配置一个DbFactory吧。

这个时候就需要代码来动态创建和获取了。

下面贴上实现的代码,里面的参数都写死了,大家在做封装的时候可以作为参数传进去获取配置文件也行。

代码语言:javascript
复制
@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 Exception {
  AppConfig appConfig = new AppConfig();
  MongoTemplate mongoTemplate = appConfig.mongoTemplate();
  mongoTemplate.getCollectionNames().forEach(System.out::println);
}

}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档