Spring Boot提供了非常便利的方式接入MongoDB,只需在项目中加入spring-boot-starter-data-mongodb或者
spring-boot-starter-data-mongodb-reactive
,这两个Starters都可以。
使用url配置副本连接已经账号密码等属性,账号和密配置在URL前面,使用:分隔,最后可以指定连接的数据库,如下配置即连接了test数据库。
连接参数说明
参数设置 | 说明 |
连接池中打开的最大连接数。当连接池达到最大连接数时,新连接会一直等待直到达到 waitQueueTimeoutMS 的值。 默认: | |
池中打开的最小连接数。minPoolSize 的值必须小于 maxPoolSize 的值。 默认: | |
大多数驱动程序默认为永不超时。某些版本的 Java 驱动程序(例如版本 3.7)默认为 默认值:适用于大多数驱动程序的 | |
TCP 连接判定超时之前可等待的毫秒数。 不要将 socketTimeoutMS 作为防止服务器长时间运行的机制。 设置过短的套接字超时时间可能会导致操作在服务器响应之前因超时而报错。 默认值: | |
连接在池中可保持空闲状态的最大毫秒数,在此时间过后,连接将被删除或关闭。 默认设置:请参阅驱动程序文档。 | |
serverSelectionTimeoutMS | 控制MongoDB客户端在选择服务器时的超时时间 |
Yaml格式
spring:
data:
mongodb:
uri: ="mongodb://user:secret@mongoserver1.example.com:27017,mongoserver2.example.com:23456/test?&maxPoolSize=50&minPoolSize=10&maxIdleTimeMS=120000&connectTimeoutMS=5000&socketTimeoutMS=5000&serverSelectionTimeoutMS=10000"
使用host方式配置
Yaml格式
spring:
data:
mongodb:
host: "mongoserver1.example.com"
port: 27017
additional-hosts:
- "mongoserver2.example.com:23456"
database: "test"
username: "user"
password: "secret"
MongoDB默认端口是27017,如果是默认端口可以删除port配置,如果需要配置多个host,只需要在additional-hosts增加多个配置即可,格式为host:port。