Spring Boot 3.x 集成 MongoDB 的 默認配置項及默認值,以及 常用需要修改的配置項 的詳細說明

以下是 Spring Boot 3.x 集成 MongoDB 的 默認配置項及默認值,以及 常用需要修改的配置項 的詳細說明:


一、默認配置項及默認值

Spring Boot 對 MongoDB 的默認配置基于 spring.data.mongodb 前綴,以下是核心配置項:

配置項默認值描述
spring.data.mongodb.databasetest默認連接的數據庫名。
spring.data.mongodb.hostlocalhostMongoDB 服務器地址。
spring.data.mongodb.port27017MongoDB 默認端口。
spring.data.mongodb.username連接認證的用戶名(需啟用認證時配置)。
spring.data.mongodb.password連接認證的密碼(需啟用認證時配置)。
spring.data.mongodb.authentication-databaseadmin認證使用的數據庫(如需指定認證數據庫)。
spring.data.mongodb.uriMongoDB 連接字符串(優先級高于單獨配置的 host/port 等)。
spring.data.mongodb.repositories.enabledtrue是否啟用 MongoDB 倉庫(Repository)支持。
spring.data.mongodb.auto-index-creationtrue是否自動創建索引(基于 @Indexed 注解)。

二、常用需要修改的配置項及說明

以下配置項根據實際場景需要調整:

1. 連接基礎配置
# 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. 認證配置
# 啟用認證(需 MongoDB 服務已配置用戶名/密碼)
spring.data.mongodb.username=admin
spring.data.mongodb.password=admin123
spring.data.mongodb.authentication-database=admin # 認證數據庫(默認 admin)
3. 連接池配置
# 連接池最大連接數(默認 100)
spring.data.mongodb.max-connections-per-host=100# 連接超時時間(毫秒,默認 10000ms)
spring.data.mongodb.connect-timeout=10000# 讀取超時時間(毫秒,默認 10000ms)
spring.data.mongodb.socket-timeout=10000
4. 高級連接配置
# 啟用 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. 寫操作配置
# 寫操作確認級別(默認 `ACKNOWLEDGED`)
spring.data.mongodb.write-concern=MAJORITY # 確保寫入到多數節點# 讀操作模式(默認 `PRIMARY`)
spring.data.mongodb.read-concern=MAJORITY
spring.data.mongodb.read-preference=primary
6. 其他優化配置
# 自動創建索引(根據 @Indexed 注解)
spring.data.mongodb.auto-index-creation=true# 關閉自動索引創建(避免重復索引)
spring.data.mongodb.auto-index-creation=false

三、配置示例

場景 1:本地 MongoDB(無認證)
spring.data.mongodb.uri=mongodb://localhost:27017/myapp
場景 2:遠程 MongoDB(帶認證)
spring.data.mongodb.uri=mongodb://user:pass@remote-host:27017/mydb?authSource=admin
場景 3:副本集配置
spring.data.mongodb.uri=mongodb://host1:27017,host2:27017,host3:27017/mydb?replicaSet=my-replica-set
場景 4:SSL 連接
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,生產環境建議手動創建索引以避免重復。

五、完整配置參考

# 基礎配置
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 集成需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76296.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76296.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76296.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【QT】 進程

目錄 QT 多進程復習 Linux-C 多進程QProcess 進程類常用方法簡單示例信號與槽應用場景 跨平臺注意事項技巧:使用宏控制平臺命令 QProcess 在嵌入式系統中的使用示例:調用 ALSA 播放音頻示例:調用 arecord 錄音示例:QProcess Shel…

原子操作(cpp atomic)

目錄 一.原子操作 1.原子操作的概念 2.原子變量 二.原子性 1.中間狀態描述 2.單處理器單核 3.多處理器或多核的情況下 4.cache(高速緩沖器的作用) 5.在cpu cache基礎上,cpu如何讀寫數據??? 6.為什么會有緩存…

Unet網絡的Pytorch實現和matlab實現

文章目錄 一、Unet網絡簡介1.1 輸入圖像1.2 編碼器部分(Contracting Path)1.3 解碼器部分(Expanding Path)1.4 最后一層(輸出)1.5 跳躍連接(Skip Connections) 二、Unet網絡的Pytorc…

記錄一次JVM調優過程1

如何通過jmap 診斷,服務運行一段時間后內存使用量飆升的問題 通過 jmap 診斷服務運行一段時間后內存使用量飆升的問題,需結合堆轉儲分析、對象分布統計及工具鏈配合。以下是具體操作步驟和關鍵方法: 一、實時監控與初步分析 獲取進程 PID 使…

接口自動化學習五:mock工具使用

Moco簡介: Mock是一個簡單搭建模擬服務器的框架,可以用來模擬http、https、socket等協議。 原理: Mock會根據一些配置,啟動一個真正的HTTP服務(會監聽本地的某個端口),當發起的請求滿足某個條件時&#xf…

若依 前后端部署

后端:直接把代碼從gitee上拉去到本地目錄 (https://gitee.com/y_project/RuoYi-Vue ) 注意下redis連接時password改auth 后端啟動成功 前端:運行前首先確保安裝了node環境,隨后執行: !!一定要用管理員權限…

Adaptive AUTOSAR 狀態管理和轉換——ActionItemList

在AUTOSAR的狀態轉換管理(STM,State Transition Manager) 框架中,ActionItemList 是連接 狀態機狀態(State Machine State) 與 功能組狀態(Function Group States) 的核心配置元素。 以下是其關系與作用的詳細解釋: 1. 核心概念 狀態機狀態(State Machine State) 表…

一個基于ragflow的工業文檔智能解析和問答系統

工業復雜文檔解析系統 一個基于ragflow的工業文檔智能解析和問答系統,支持多種文檔格式的解析、知識庫管理和智能問答功能。 系統功能 1. 文檔管理 支持多種格式文檔上傳(PDF、Word、Excel、PPT、圖片等)文檔自動解析和分塊處理實時處理進度顯示文檔解析結果預覽批量文檔…

linux系統下如何提交git和調試

我們默認的ubuntu20.04鏡像是沒有Git提交的工具,我們需要配置安裝包。 安裝和更新git的命令 sudo apt update //用于更新軟件包索引sudo apt install git //用于安裝git版本控制工具 git --version //檢查git版本,確認是否安裝成功 隨便進入linux系統下的一…

輕量級爬蟲框架Feapder入門:快速搭建企業級數據管道

一、目標與前置知識 1. 目標概述 本教程的主要目標是: 介紹輕量級爬蟲框架 Feapder 的基本使用方式。快速搭建一個采集豆瓣電影數據的爬蟲,通過電影名稱查找對應的電影詳情頁并提取相關信息(電影名稱、導演、演員、劇情簡介、評分&#xf…

spring mvc的攔截器HandlerInterceptor 接口詳解

HandlerInterceptor 接口詳解 1. 接口方法說明 方法作用執行時機返回值/注意事項preHandle請求處理前攔截在控制器方法執行前調用返回 false 中斷后續流程;返回 true 繼續執行postHandle控制器方法執行后攔截在控制器方法返回結果后,視圖渲染前調用無返…

數據可視化 —— 柱形圖應用(大全)

一、案例一:單柱形圖 1.導入庫 import matplotlib.pyplot as plt import pandas as pd import numpy as np 2.給窗口名稱和畫布大小 plt.figure(num單柱形圖, figsize(6, 4), facecolorw) 3.定義x、y軸的數據 # range(0-4) x np.arange(5) # 創建數組 y1 np.a…

apijson 快速上手

apijson是強大的工具,簡化了CRUD的操作,只要有數據庫表,就能自動生成RESTFUL接口。但初次上手也是摸索了很長時間,尤其是部署與使用上,這里嘗試以初學者角度來說下: 一、好處 1、對于簡單的應用&#xff…

V4L2雜談

V4L2的開發手冊 在做v4l2的開發的時候, 可以使用v4l2-ctl命令協助調試和軟件開發。關于linux多媒體開發可以參考鏈接:https://www.linuxtv.org/wiki/index.php/Main_Page關于v4l2的api接口開發可以參考:https://linuxtv.org/docs.php在linux…

(五)深入了解AVFoundation-播放:多音軌、字幕、倍速播放與橫豎屏切換

引言 在之前的博客中,我們已經實現了一個相對完整的播放器,具備了基本功能,如播放、暫停、播放進度顯示和拖拽快進等。這為我們提供了一個堅實的基礎。接下來,我們將進一步擴展播放器的功能,使其更具靈活性和實用性&a…

3ds Max 2016的版本怎么處理 按鍵輸入被主程序截斷 C#winform窗體接受不到英文輸入

3ds Max 2016的版本怎么處理 按鍵輸入被主程序截斷 C#winform窗體接受不到英文輸入 如果窗體失去焦點應該取消 全局監聽事件 解決方案:在窗體失去焦點時取消全局鍵盤鉤子 為了確保 WinForms 窗體失去焦點時不再攔截鍵盤事件(避免影響 3ds Max 或其他程…

華為手機或平板與電腦實現文件共享

1.手機或平板與電腦在同一個網絡 2.打開手機或平板端,設置---更多連接----快分享或華為分享打開此功能-----開啟共享至電腦 3.打開電腦,網絡中就可看到手機端分享的用戶名稱 4. 登陸就可訪問手機 5.常見問題 5.1 電腦未發現本機 5.2 修改了訪問密碼后再…

elemenPlus中,如何去掉el-input中 文本域 textarea自帶的邊框和角標

1、去掉角標 :deep(.el-textarea__inner) {resize: none !important; // 去除右下角圖標 }2、去除邊框&#xff0c;并自定義背景色 <el-inputref"textareaRef"v-model"tempContent":style"{--el-border-color: rgba(255,255,255,0.0),--el-input-…

xv6-labs-2024 lab2

lab-2 0. 前置 課程記錄 操作系統的隔離性&#xff0c;舉例說明就是&#xff0c;當我們的shell&#xff0c;或者qq掛掉了&#xff0c;我們不希望因為他&#xff0c;去影響其他的進程&#xff0c;所以在不同的應用程序之間&#xff0c;需要有隔離性&#xff0c;并且&#xff0…

MCU控制4G模組(標準AT命令),CatM的最大速率?

根據3GPP標準&#xff0c;Cat M1的上行峰值速率大約是1 Mbps&#xff0c;下行大約是1 Mbps。但實際速率會受到多種因素影響&#xff0c;比如網絡條件、信號強度、模塊配置等。 考慮使用AT命令時的開銷。每次發送數據都需要通過AT命令&#xff0c;比如ATQISEND&#xff0c;會引…