Spring Boot中使用MongoDB資料庫

2021-07-22 06:53:56 字數 1991 閱讀 3280

前段時間分享了關於spring boot中使用redis的文章,除了redis之後,我們在網際網路產品中還經常會用到另外一款著名的nosql資料庫mongodb。

下面就來簡單介紹一下mongodb,並且通過乙個例子來介紹spring boot中對mongodb訪問的配置和使用。

mongodb是乙個基於分布式檔案儲存的資料庫,它是乙個介於關聯式資料庫和非關聯式資料庫之間的產品,其主要目標是在鍵/值儲存方式(提供了高效能和高度伸縮性)和傳統的rdbms系統(具有豐富的功能)之間架起一座橋梁,它集兩者的優勢於一身。

mongodb支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料型別,也因為他的儲存格式也使得它所儲存的資料在nodejs程式應用中使用非常流暢。

既然稱為nosql資料庫,mongo的查詢語言非常強大,其語法有點類似於物件導向的查詢語言,幾乎可以實現類似關聯式資料庫單錶查詢的絕大部分功能,而且還支援對資料建立索引。

但是,mongodb也不是萬能的,同mysql等關係型資料庫相比,它們在針對不同的資料型別和事務要求上都存在自己獨特的優勢。在資料儲存的選擇中,堅持多樣化原則,選擇更好更經濟的方式,而不是自上而下的統一化。

mongodb官網

在spring boot中,對如此受歡迎的mongodb,同樣提供了自配置功能。

引入依賴

spring boot中可以通過在pom.xml中加入spring-boot-starter-data-mongodb引入對mongodb的訪問支援依賴。它的實現依賴spring-data-mongodb。是的,您沒有看錯,又是spring-data的子專案,之前介紹過spring-data-jpaspring-data-redis,對於mongodb的訪問,spring-data也提供了強大的支援,下面就開始動手試試吧。

org.springframework.bootgroupid>

spring-boot-starter-data-mongodbartifactid>

dependency>

快速開始使用spring-data-mongodb

若mongodb的安裝配置採用預設埠,那麼在自動配置的情況下,我們不需要做任何引數配置,就能馬上連線上本地的mongodb。下面直接使用spring-data-mongodb來嘗試對mongodb的訪問操作。(記得mongod啟動您的mongodb)

public

class

user

// 省略getter和setter

}

public

inte***ce

userrepository

extends

mongorepository

@runwith(springjunit4classrunner.class)

public

class

@test

public

void

test

()throws exception

}

引數配置
spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test
在嘗試此配置時,記得在mongo中對test庫建立具備讀寫許可權的使用者(使用者名為name,密碼為pass),不同版本的使用者建立語句不同,注意檢視文件做好準備工作

若使用mongodb 2.x,也可以通過如下引數配置,該方式不支援mongodb 3.x。

spring.data.mongodb.host=localhost spring.data.mongodb.port=27017

Spring Boot中使用MongoDB資料庫

前段時間分享了關於spring boot中使用redis的文章,除了redis之後,我們在網際網路產品中還經常會用到另外一款著名的nosql資料庫mongodb。下面就來簡單介紹一下mongodb,並且通過乙個例子來介紹spring boot中對mongodb訪問的配置和使用。mongodb是乙個基...

SpringBoot中使用日誌

結果 所有配置檔案都會被載入,高優先順序的配置檔案會覆蓋低優先順序的配置檔案 springboot 底層是spring框架,spring框架預設是用jcl springboot選用slf4j和logback作為日誌框架 如何使用slf4j import org.slf4j.logger import...

springboot中使用Activiti郵件任務

springboot中使用activiti郵件任務 解決方法 activiti允許通過自動郵件服務任務來增強業務流程,這些任務將電子郵件傳送給乙個或多個收件人,多個人以逗號隔開,包括抄送,密件抄送,支援傳送html內容等。to 郵件接收人,多個人使用英文逗號隔開 subject 郵件主題 cc 電子...