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:dev_xxx@127.0.0.1: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值