在springboot中使用mongodb

最近接到关于mongodb数据仓储的项目需求

之前用的springboot+mybatis+mysql/sqlserver的架构开发项目习惯了,接到需求,还是要先去了解一下mongodb是什么?以及mongodb怎么融入到之前的框架中?

带着这两个问题,马上开启 百度 和 谷歌 模式,首先想到的应该就是找官网了。

具体MongoDB官方文档地址:
https://docs.mongodb.com/manual/introduction/

Spring关于MongoDB整合操作的官方文档地址:
https://docs.spring.io/spring-data/mongodb/docs/2.2.6.RELEASE/reference/html/#introduction

在学习MongoDB之前,首选要对其进行安装,可参考笔者之前写过的安装教程:
MongoDB在Linux/Windows下的安装教程
如对MongoDB GridFs 感兴趣的,可以参考:
SpringBoot 中使用MongoDB GridFs

对MongoDB有些许了解了之后,可以创建相关项目

  • 创建项目
    1、在springboot中使用mongodb_第1张图片在springboot中使用mongodb_第2张图片
    在现有的代码开发工具中创建时最方便的,只需要点点点就可以完成项目创建了,由于创建的时候勾选了引用Spring Data MongoDB的包,MongoDB默认环境是具备了
    2、在springboot中使用mongodb_第3张图片
    或者在现有maven中加入从maven仓库找到的MongoDB操作包,注意:有可能发生版本不一致问题

    再在application.properties/application.yml中配置MongoDB的连接属性

  • 配置MongoDB连接属性和客户端配置类

    ### MongoDB配置文件
    spring.data.mongodb.host=127.0.0.1
    spring.data.mongodb.port=27017
    spring.data.mongodb.database=admin
    
    import com.mongodb.MongoClientSettings;
    import com.mongodb.ServerAddress;
    import com.mongodb.client.MongoClient;
    import com.mongodb.client.MongoClients;
    import com.mongodb.client.MongoDatabase;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import java.util.Arrays;
    
    /**
    * mongoDB 配置类
    */
    @Configuration
    public class MongoConfig {
           
    
       @Value("${spring.data.mongodb.host}")
       private String host;
    
       @Value("${spring.data.mongodb.port}")
       private Integer port;
    
       @Value("${spring.data.mongodb.database}")
       private String database;
    
       @Bean
       public MongoClient getMongoClient(){
           
           MongoClient mongoClient = MongoClients.create(
                   MongoClientSettings.builder()
                           .applyToClusterSettings(builder ->
                                   builder.hosts(Arrays.asList(new ServerAddress(host, port))))
                           .build());
           return mongoClient;
       }
    }
    
  • 在java类中注入 MongoTemplate (MongoDB数据操作类)[有点类似 JdbcTemplate ]

    import com.java.common.ResultMsg;
    import com.java.domain.ConfigTable;
    import com.java.service.IConfigTableService;
    import org.bson.Document;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.data.mongodb.core.query.Query;
    import org.springframework.stereotype.Service;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Service
    public class ConfigTableService implements IConfigTableService {
           
    
        @Autowired
        private MongoTemplate mongoTemplate;
    
        @Override
        public ResultMsg<List<ConfigTable>> getIndexSelection(){
           
            ResultMsg<List<ConfigTable>> resultMsg = new ResultMsg<>();
            List<ConfigTable> list = new ArrayList<>();
            int status = 0;
            try {
           
                list = mongoTemplate.findAll(ConfigTable.class, "config_table");
                resultMsg.setData(list);
                status = 1;
            }catch (Exception e) {
           
                e.printStackTrace();
            }
            resultMsg.setStatus(status);
            return resultMsg;
        }
    }
    

你可能感兴趣的:(Java,spring,boot,mongodb)