SpringBoot整合MongoDB的實(shí)現(xiàn)代碼
MongoDB官網(wǎng)安裝:
https://www.mongodb.com/download-center/community
MongoDB客戶端工具(Mongo Management Studio)安裝:
http://mms.litixsoft.de/#software_pricing
一、添加Maven依賴
<!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
二、application.yml配置
spring: data: mongodb: host: 127.0.0.1 port: 27017 database: blog
三、代碼中使用Mongo
1.Mongo適用場(chǎng)景
(1)可用于動(dòng)態(tài)列;
(2)可用于配置方面(如一些系統(tǒng)配置);
(3)日志記錄;
(4)用于博客開發(fā)中的評(píng)論或留言;
(5)物聯(lián)網(wǎng)方面的門鎖相關(guān)信息存儲(chǔ);
(6)探頭;
上面六個(gè)場(chǎng)景是我之前開發(fā)使用過(guò)的。
當(dāng)然了,Mongo還可以應(yīng)用更多地方,關(guān)鍵在于應(yīng)用的場(chǎng)景是否合適。
2.以我最近博客開發(fā)的一個(gè)聯(lián)系我為例(這里我使用Mongo)
(1)建立數(shù)據(jù)模型(需要在Mongo對(duì)應(yīng)的庫(kù),建立對(duì)應(yīng)的集合)
package com.springcloud.blog.admin.mongo.entity; import com.springcloud.blog.admin.common.base.BaseDTO; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; /** * 聯(lián)系我-數(shù)據(jù)模型 */ @Document(collection = "contact_me") public class ContactMe extends BaseDTO { @Field private String name; @Field private String email; @Field private String content; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
(2)數(shù)據(jù)訪問(wèn)層
package com.springcloud.blog.admin.mongo.dao; import com.springcloud.blog.admin.mongo.entity.ContactMe; import org.springframework.data.mongodb.repository.MongoRepository; /** * 聯(lián)系我-持久層 */ public interface ContactMeRepository extends MongoRepository<ContactMe, String> { }
(3)對(duì)外API
package com.springcloud.blog.admin.mongo.controller; import com.alibaba.fastjson.JSONObject; import com.springcloud.blog.admin.common.dict.ResponseDict; import com.springcloud.blog.admin.mongo.dao.ContactMeRepository; import com.springcloud.blog.admin.mongo.entity.ContactMe; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 聯(lián)系我(Mongo Example) */ @RestController @RequestMapping("/contactMe") public class ContactMeController { @Autowired private ContactMeRepository contactMeRepository; @PostMapping("/save") public JSONObject save(@RequestBody ContactMe contactMe) { JSONObject jsonObject = new JSONObject(); contactMeRepository.save(contactMe); jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE); jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG); return jsonObject; } @PostMapping("/delete") public JSONObject delete(@RequestBody ContactMe contactMe) { JSONObject jsonObject = new JSONObject(); contactMeRepository.delete(contactMe); jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE); jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG); return jsonObject; } @PostMapping("/update") public JSONObject update(@RequestBody ContactMe contactMe) { JSONObject jsonObject = new JSONObject(); contactMeRepository.save(contactMe); jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE); jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG); return jsonObject; } @PostMapping("/getAll") public JSONObject getAll() { JSONObject jsonObject = new JSONObject(); List<ContactMe> list = contactMeRepository.findAll(); jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE); jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG); jsonObject.put(ResponseDict.RESPONSE_DATA_KEY, list); return jsonObject; } }
簡(jiǎn)單的說(shuō)就是一個(gè)非常簡(jiǎn)單的增刪改查,可幫助入門。
同時(shí)一般情況下,還是需要業(yè)務(wù)邏輯層的,一方面為了復(fù)用考慮,另外一方面不同的業(yè)務(wù)辦不同的事情。
以上就是SpringBoot整合MongoDB的實(shí)現(xiàn)代碼的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot整合MongoDB的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
簡(jiǎn)單了解java類的初始化以及類的實(shí)例化
這篇文章主要介紹了簡(jiǎn)單了解java類的初始化以及類的實(shí)例化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07java聯(lián)系人管理系統(tǒng)簡(jiǎn)單設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了java聯(lián)系人管理系統(tǒng)簡(jiǎn)單設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Spring boot redis cache的key的使用方法
這篇文章主要介紹了Spring boot redis cache的key的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Kafka中的producer攔截器與consumer攔截器詳解
這篇文章主要介紹了Kafka中的producer攔截器與consumer攔截器詳解,Producer 的Interceptor使得用戶在消息發(fā)送前以及Producer回調(diào)邏輯前有機(jī)會(huì)對(duì)消息做 一些定制化需求,比如修改消息等,需要的朋友可以參考下2023-12-12關(guān)于MD5算法原理與常用實(shí)現(xiàn)方式
這篇文章主要介紹了關(guān)于MD5算法原理與常用實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08基于Mybatis Plus實(shí)現(xiàn)代碼生成器CodeGenerator
這篇文章主要介紹了基于Mybatis Plus實(shí)現(xiàn)代碼生成器CodeGenerator,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08解析SpringBoot項(xiàng)目開發(fā)之Gzip壓縮過(guò)程
這篇文章主要介紹了SpringBoot項(xiàng)目開發(fā)之Gzip壓縮過(guò)程,本文給大家分享幾種Gzip壓縮方式,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07