信息发布→ 登录 注册 退出

SpringBoot整合MongoDB完整实例代码

发布时间:2026-01-11

点击量:
目录
  • 一、新建项目
  • 二、docker-compose 配置mongoDB
  • 三、SpringBoot配置MongoDB
    • 问题:Exception authenticating MongoCredential
  • 四、编写测试类
    • 五、源码地址

      一、新建项目

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

      二、docker-compose 配置mongoDB

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

      version: "3"
      services:
        mongo:
          image: mongo
          environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: root
          ports:
            - "27018:27017"
          volumes:
            - ~/data2025/mongodb/data:/data/db
            - ~/data2025/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

      在线客服
      服务热线

      服务热线

      4008888355

      微信咨询
      二维码
      返回顶部
      ×二维码

      截屏,微信识别二维码

      打开微信

      微信号已复制,请打开微信添加咨询详情!