SpringBootSpringBoot整合MongoDB完整实例

Posted 小雨青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBootSpringBoot整合MongoDB完整实例相关的知识,希望对你有一定的参考价值。

一、新建项目

我们这次直接从IEDA创建项目,具体配置如下,还是万年的Java8。

二、docker-compose 配置mongoDB

docker-compose.yml的具体配置如下,注意的是本地的文件夹data2022可以根据需要改成自己的名称,如果本地还在跑其他MongoDB项目,注意端口号别冲突了。

version: "3"
services:
  mongo:
    image: mongo
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root
    ports:
      - "27018:27017"
    volumes:
      - ~/data2022/mongodb/data:/data/db
      - ~/data2022/mongodb/conf:/data/configdb

启动docker-compose up -d

本地测试连接MongoDB,根据配置,端口为 27018 ,默认用户名密码为 root 。

测试连接成功。

三、SpringBoot配置MongoDB

先新建名为ms的数据库,application.yml配置文件如下

server:
  port: 8099
  servlet:
    encoding:
      charset: UTF-8
      force: true
spring:
  data:
    mongodb:
      uri: mongodb://root:root@localhost:27018/ms

启动应用,查看日志,连接成功。

问题:Exception authenticating MongoCredential

可能出现的问题 Exception authenticating MongoCredential ,可能是用户没有对应权限,要重新创建一下。

db.createUser(
    user: "root",
    pwd: "root",
    roles: [
        
            role: "root",
            db: "ms"
        
    ],
    authenticationRestrictions: [ ],
    mechanisms: [
        "SCRAM-SHA-1"
    ],
    passwordDigestor: "client"
)

四、编写测试类

我们通过MongoTemplate对MongoDB进行数据读写,后面详细

简单写一些方法。

package com.example.springbootwithmongodb.entry;


import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;

@SpringBootTest
public class CatTest 

    @Autowired
    private MongoTemplate mongoTemplate;

    @Test
    public void createTest()
        Cat cat = new Cat();
        cat.setName("糖果");
        cat.setAge(3);
        cat.setLikeCount(100);
        mongoTemplate.insert(cat);
    
    

测试通过~

五、源码地址

本文源码同步更新在gitcode中,地址为 SpringBootWithMongoDB · master · 小雨青年 / Java Demo · GitCode

以上是关于SpringBootSpringBoot整合MongoDB完整实例的主要内容,如果未能解决你的问题,请参考以下文章

SpringBootSpringBoot 整合RabbitMQ(二十)

SpringbootSpringBoot基础知识及整合Thymeleaf模板引擎

SpringBootSpringBoot整合MongoDB完整实例

SpringbootSpringboot整合Jasypt,让配置信息安全最优雅方便的方式

SpringBoot/Git/Linux/EasyCode

SpringBoot/Git/Linux/EasyCode