SpringBoot -- 集成MongoDB

前置工作

  • 熟悉本系列的工作環境
  • MongoDB已經搭建完成
  • MongoDB啓用驗證

引入&配置參數

引入 spring-boot-starter-data-mongodb

build.gradle

compile ('org.springframework.boot:spring-boot-starter-data-mongodb:'+springBootVersion)

配置Mongodb參數

  • uri: mongodb://dev_xxx:[email protected]:27017/kakme
  • dev_xxx:dev_xxx 爲 username:password
  • kakme 爲database
  • 如果用戶名密碼中帶有URI特殊字符(”:”,”@”),請使用host方式

URI 方式:application.yml

spring:
  data:
    mongodb:
      uri: mongodb://dev_xxx:dev_xxx@127.0.0.1:27017/kakme

OTHER: application.yml

spring:
  data:
    mongodb:
      host: 127.0.0.1
      port: 27017
      username: dev_xxx
      password: dev_xxxx
      database: kakme

使用MongoRepository進行CRUI操作

創建Mongodb Bean,使用@Id標識 ObjectId

MessageInfo.java

/**
 * @author cwenao
 * @version $Id MessageInfo.java, v 0.1 2017-01-30 12:29 cwenao Exp $$
 */
public class MessageInfo {

    @Id
    private String id;

    private String title;

    private String msgType;

    private String msgInfo;

    //getter setter
    ... ...

    @Override
    public String toString() {
        return "[ id ="+id+", title ="+title+", msgInfo="+msgInfo+" ]";
    }
 }

自定義Repository進行額外的操作,集成 MongoRepository

MsgInfoRepository.java,此爲 interface

/**
 * @author cwenao
 * @version $Id MsgInfoRepository.java, v 0.1 2017-01-30 12:33 cwenao Exp $$
 */
public interface MsgInfoRepository extends MongoRepository<MessageInfo,String> {

    MessageInfo queryMsgInfoByTitle(String title);
}

創建 controller,使用上幾章的 UserInfoController

UserInfoController

/**
 * @author cwenao
 * @version $Id UserInfoController.java, v 0.1 2017-01-25 18:35 cwenao Exp $$
 */
@Controller
public class UserInfoController extends AbstractCacheSupport {

    @Autowired
    MsgInfoRepository msgInfoRepository;

    @RequestMapping("/messageInfo")
    public String messageInfo(String title, ModelMap modelMap) {

        MessageInfo messageInfo = new MessageInfo();
        messageInfo.setMsgInfo("hello world !");
        messageInfo.setTitle(title);
        messageInfo.setMsgType("1");
        msgInfoRepository.save(messageInfo);  

        modelMap.addAttribute("test_mongodb",
            msgInfoRepository.queryMsgInfoByTitle("cwenao").toString());

        return "userinfo/accountInfo";
    }
}

測試

  • 依次啓動 discovery、configserver、apigateway、dbserver

訪問 http://localhost:10002/dbserver/messageInfo?title=cwenao

queryMsgInfoByTitle

mongodb庫


代碼

代碼請移步 Github參考地址

如有疑問請加公衆號(K171),如果覺得對您有幫助請 github start
公衆號_k171

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章