Spring Boot 3.x 集成 MongoDB 的 默认配置项及默认值,以及 常用需要修改的配置项 的详细说明

以下是 Spring Boot 3.x 集成 MongoDB 的 默认配置项及默认值 ,以及 常用需要修改的配置项 的详细说明:


一、默认配置项及默认值

Spring Boot 对 MongoDB 的默认配置基于 spring.data.mongodb 前缀,以下是核心配置项:

配置项 默认值 描述
spring.data.mongodb.database test 默认连接的数据库名。
spring.data.mongodb.host localhost MongoDB 服务器地址。
spring.data.mongodb.port 27017 MongoDB 默认端口。
spring.data.mongodb.username 连接认证的用户名(需启用认证时配置)。
spring.data.mongodb.password 连接认证的密码(需启用认证时配置)。
spring.data.mongodb.authentication-database admin 认证使用的数据库(如需指定认证数据库)。
spring.data.mongodb.uri MongoDB 连接字符串(优先级高于单独配置的 host/port 等)。
spring.data.mongodb.repositories.enabled true 是否启用 MongoDB 仓库(Repository)支持。
spring.data.mongodb.auto-index-creation true 是否自动创建索引(基于 @Indexed 注解)。

二、常用需要修改的配置项及说明

以下配置项根据实际场景需要调整:

1. 连接基础配置
properties 复制代码
# MongoDB 连接字符串(推荐使用,简化配置)
spring.data.mongodb.uri=mongodb://localhost:27017/mydb

# 或单独配置(适用于简单场景)
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=mydb
2. 认证配置
properties 复制代码
# 启用认证(需 MongoDB 服务已配置用户名/密码)
spring.data.mongodb.username=admin
spring.data.mongodb.password=admin123
spring.data.mongodb.authentication-database=admin # 认证数据库(默认 admin)
3. 连接池配置
properties 复制代码
# 连接池最大连接数(默认 100)
spring.data.mongodb.max-connections-per-host=100

# 连接超时时间(毫秒,默认 10000ms)
spring.data.mongodb.connect-timeout=10000

# 读取超时时间(毫秒,默认 10000ms)
spring.data.mongodb.socket-timeout=10000
4. 高级连接配置
properties 复制代码
# 启用 SSL(需 MongoDB 服务支持 SSL)
spring.data.mongodb.ssl-enabled=true

# 忽略 SSL 主机名验证(测试环境可用)
spring.data.mongodb.ssl-invalid-host-name-allowed=true

# 副本集名称(若使用副本集)
spring.data.mongodb.replica-set=my-replica-set

# 分片集群配置(若使用分片)
spring.data.mongodb.sharded=true
5. 写操作配置
properties 复制代码
# 写操作确认级别(默认 `ACKNOWLEDGED`)
spring.data.mongodb.write-concern=MAJORITY # 确保写入到多数节点

# 读操作模式(默认 `PRIMARY`)
spring.data.mongodb.read-concern=MAJORITY
spring.data.mongodb.read-preference=primary
6. 其他优化配置
properties 复制代码
# 自动创建索引(根据 @Indexed 注解)
spring.data.mongodb.auto-index-creation=true

# 关闭自动索引创建(避免重复索引)
spring.data.mongodb.auto-index-creation=false

三、配置示例

场景 1:本地 MongoDB(无认证)
properties 复制代码
spring.data.mongodb.uri=mongodb://localhost:27017/myapp
场景 2:远程 MongoDB(带认证)
properties 复制代码
spring.data.mongodb.uri=mongodb://user:pass@remote-host:27017/mydb?authSource=admin
场景 3:副本集配置
properties 复制代码
spring.data.mongodb.uri=mongodb://host1:27017,host2:27017,host3:27017/mydb?replicaSet=my-replica-set
场景 4:SSL 连接
properties 复制代码
spring.data.mongodb.uri=mongodb://user:pass@host:27017/mydb?ssl=true&sslInvalidHostNameAllowed=true

四、注意事项

  1. 优先级规则

    • spring.data.mongodb.uri 的优先级高于单独配置的 host/port 等参数。
    • 若同时配置 uri 和其他参数,其他参数会被忽略。
  2. 连接池优化

    • 根据应用负载调整 max-connections-per-host(通常 100 足够,高并发场景可适当增加)。
    • 避免设置过小的连接超时(connect-timeout)导致频繁断开。
  3. 安全配置

    • 生产环境必须启用认证和 SSL。
    • 避免使用 sslInvalidHostNameAllowed 在生产环境(可能有安全风险)。
  4. 索引管理

    • 开发阶段可启用 auto-index-creation,生产环境建议手动创建索引以避免重复。

五、完整配置参考

properties 复制代码
# 基础配置
spring.data.mongodb.uri=mongodb://user:pass@host:27017/mydb?authSource=admin&replicaSet=my-replica-set&ssl=true

# 连接池
spring.data.mongodb.max-connections-per-host=200
spring.data.mongodb.min-connections-per-host=4

# 超时配置
spring.data.mongodb.connect-timeout=5000
spring.data.mongodb.socket-timeout=30000

# 认证与安全
spring.data.mongodb.ssl-enabled=true
spring.data.mongodb.ssl-invalid-host-name-allowed=false

# 写操作
spring.data.mongodb.write-concern=MAJORITY

# 索引
spring.data.mongodb.auto-index-creation=true

通过以上配置,可以灵活适配不同场景的 MongoDB 集成需求。

相关推荐
bjxiaxueliang37 分钟前
一文掌握SpringBoot:HTTP服务开发从入门到部署
spring boot·后端·http
过期动态12 小时前
Java开发中的@EnableWebMvc注解和WebMvcConfigurer接口
java·开发语言·spring boot·spring·tomcat·maven·idea
野犬寒鸦13 小时前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习
我爱娃哈哈13 小时前
SpringBoot + Flowable + 自定义节点:可视化工作流引擎,支持请假、报销、审批全场景
java·spring boot·后端
韩师学子--小倪14 小时前
SpringBoot 优雅停服
spring boot·tomcat
雪域迷影15 小时前
MacOS中运行Next.js项目注册新用户时MongoDB报错MongoServerError
mongodb·macos·react·next.js
AC赳赳老秦15 小时前
DeepSeek 辅助科研项目申报:可行性报告与经费预算框架的智能化撰写指南
数据库·人工智能·科技·mongodb·ui·rabbitmq·deepseek
李梨同学丶15 小时前
0201好虫子周刊
后端
思想在飞肢体在追16 小时前
Springboot项目配置Nacos
java·spring boot·后端·nacos
一心赚狗粮的宇叔17 小时前
mongosDb 安装及Mongosshell常见命令
数据库·mongodb·oracle·nosql·web·全栈