Spring Data 專案的主要目標是更輕鬆地建立基於 Spring 的應用程序,這些應用程式使用新的資料存取技術,例如非關聯式資料庫、map-reduce 框架和基於雲端的資料服務。
Spring Data MongoDB 專案旨在為新資料儲存提供熟悉且一致的基於 Spring 的程式設計模型,同時保留特定於儲存的特性和功能。 Spring Data MongoDB 專案提供與 MongoDB 文件資料庫的整合。 Spring Data MongoDB 的關鍵功能區域是一個以 POJO 為中心的模型,用於與 MongoDB Document
互動並輕鬆編寫儲存庫樣式的資料存取層。
該項目受 Spring 行為準則管轄。透過參與,您應該遵守本行為準則。請將不可接受的行為回報至 [email protected]。
以下是在 Java 中使用 Spring Data Repositories 的應用程式的快速預覽:
public interface PersonRepository extends CrudRepository < Person , Long > {
List < Person > findByLastname ( String lastname );
List < Person > findByFirstnameLike ( String firstname );
}
@ Service
public class MyService {
private final PersonRepository repository ;
public MyService ( PersonRepository repository ) {
this . repository = repository ;
}
public void doWork () {
repository . deleteAll ();
Person person = new Person ();
person . setFirstname ( "Oliver" );
person . setLastname ( "Gierke" );
repository . save ( person );
List < Person > lastNameResults = repository . findByLastname ( "Gierke" );
List < Person > firstNameResults = repository . findByFirstnameLike ( "Oli*" );
}
}
@ Configuration
@ EnableMongoRepositories
class ApplicationConfig extends AbstractMongoClientConfiguration {
@ Override
protected String getDatabaseName () {
return "springdata" ;
}
}
新增 Maven 依賴:
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-mongodb</ artifactId >
< version >${version}</ version >
</ dependency >
如果您希望獲得即將發布的主要版本的最新快照,請使用我們的 Maven 快照儲存庫並聲明適當的依賴項版本。
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-mongodb</ artifactId >
< version >${version}-SNAPSHOT</ version >
</ dependency >
< repository >
< id >spring-snapshot</ id >
< name >Spring Snapshot Repository</ name >
< url >https://repo.spring.io/snapshot</ url >
</ repository >
專案 wiki 上提供如何從 Spring Data 的早期版本升級的說明。請按照發行說明部分中的連結尋找您要升級到的版本。
Spring Data 遇到問題?我們很樂意提供協助!
檢查參考文件和 Javadocs
學習 Spring 基礎知識 – Spring Data 基於 Spring Framework 構建,請查看 spring.io 網站以取得大量參考文件。如果您剛開始使用 Spring,請嘗試其中一個指南。
如果您要升級,請查看變更日誌以了解「新的和值得注意的」功能。
提出問題 - 我們監控 stackoverflow.com 中是否有帶有spring-data-mongodb
標籤的問題。您也可以在 Gitter 上與社群聊天。
在 github.com/spring-projects/spring-data-mongodb/issues 報告 Spring Data MongoDB 的錯誤。
Spring Data 使用 Github 作為問題追蹤系統來記錄錯誤和功能請求。如果您想提出問題,請遵循以下建議:
在記錄錯誤之前,請搜尋問題追蹤器以查看是否有人已經報告了該問題。
如果該問題尚不存在,請建立一個新問題。
請在問題報告中提供盡可能多的信息,我們想知道您正在使用的 Spring Data 版本、JVM 版本、Stacktrace 等。
如果您需要貼上程式碼,或包含堆疊跟踪,請使用 Markdown 程式碼圍欄``。
spring.io 網站包含多個指南,示範如何逐步使用 Spring Data:
使用 MongoDB 存取資料是一個非常基本的指南,向您展示如何建立簡單的應用程式以及如何使用儲存庫存取資料。
使用 REST 存取 MongoDB 資料是建立透過儲存庫公開 MongoDB 中儲存的資料的 REST Web 服務的指南。
Spring Data Examples 包含更詳細地解釋特定功能的範例項目。
您不需要從原始碼建置來使用 Spring Data。二進位檔案可在 repo.spring.io 中取得,並可使用上述 Maven 配置從 Maven 進行存取。
筆記 | Gradle 的配置與 Maven 類似。 |
最好的入門方法是在 start.spring.io 上使用 MongoDB 建立一個 Spring Boot 專案。點擊此連結建立命令式應用程序,點擊此連結建立響應式應用程式。
但是,如果您想嘗試最新、最好的,Spring Data MongoDB 可以使用 Maven 包裝器和最低限度的 JDK 17(JDK 下載)輕鬆建置。
為了建立 Spring Data MongoDB,您需要下載並安裝 MongoDB 發行版。
安裝 MongoDB 後,您需要啟動 MongoDB 伺服器。將環境變數設定為 MongoDB 安裝目錄(例如MONGODB_HOME
)很方便。
要運行完整的測試套件,需要 MongoDB 副本集。
若要執行 MongoDB 伺服器,請從命令列輸入以下命令:
$ $MONGODB_HOME /bin/mongod --dbpath $MONGODB_HOME /runtime/data --ipv6 --port 27017 --replSet rs0
...
" msg " : " Successfully connected to host "
MongoDB 伺服器啟動後,您應該會看到訊息 ( msg
)「已成功連接到主機」。
請注意mongod
指令的--dbpath
選項。您可以將其設定為您喜歡的任何內容,但在本例中,我們將絕對路徑設定為 MongoDB 安裝目錄(在$MONGODB_HOME
中)下的子目錄 ( runtime/data/
)。
MongoDB伺服器首次啟動時只需初始化一次MongoDB副本集。若要初始化副本集,請啟動 mongo 用戶端:
$ $MONGODB_HOME /bin/mongo
MongoDB server version: 6.0.0
...
然後輸入以下命令:
mongo > rs.initiate({ _id: ' rs0 ' , members: [ { _id: 0, host: ' 127.0.0.1:27017 ' } ] })
最後,在基於 UNIX 的系統(例如 Linux 或 Mac OS X)上,您可能需要調整ulimit
。如果需要,您可以使用以下命令調整ulimit
(32768 只是建議):
$ ulimit -n 32768
您可以再次使用ulimit -a
來驗證「開啟檔案」的ulimit
設定是否正確。
現在您已準備好建置 Spring Data MongoDB。只要輸入以下mvnw
(Maven Wrapper) 指令:
$ ./mvnw clean install
如果您想使用常規mvn
命令進行構建,則需要 Maven v3.8.0 或更高版本。
如果您希望提交拉取請求,請另參閱 CONTRIBUTING.adoc,特別是,請在第一次重要變更之前簽署貢獻者協議。
建置文件也會建置項目,而無需執行測試。
$ ./mvnw clean install -Pantora
產生的文檔可從target/antora/site/index.html
取得。
Spring Data MongoDB 是在 Apache 2.0 許可證下發布的開源軟體。