最近接到关于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、
在现有的代码开发工具中创建时最方便的,只需要点点点就可以完成项目创建了,由于创建的时候勾选了引用Spring Data MongoDB的包,MongoDB默认环境是具备了
2、
或者在现有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; } }