springboot 使用mongodb

Posted 不想取名字所以就随便写了

tags:

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

springboot中使用mongodb第一步需要在pom.xml中配置mongodb依赖

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

接着在application.properties中添加连接相关参数

spring.data.mongodb.host = 127.0.0.1
spring.data.mongodb.port = 27017
spring.data.mongodb.database = test

这些参数会被用于自动创建与mongodb的连接

紧接着,为了自动创建与mongodb的连接需要配置bean,这里我使用如下方式,当然也可以使用xml配置的方式

 1 @Configuration
 2 public class AppConfig {
 3     @Value("${spring.data.mongodb.host}")
 4     private String mongoHost;
 5 
 6     @Value("${spring.data.mongodb.database}")
 7     private String mongoDatabase;
 8 
 9     @Value("${spring.data.mongodb.port}")
10     private int mongoPort;
11 
12     @Bean
13     public MongoClient mongoClient() throws Exception {
14         return new MongoClient(this.mongoHost, this.mongoPort);
15     }
16 
17     @Bean(name="mongoTemplate")
18     public MongoTemplate mongoTemplate() throws Exception {
19         MongoTemplate mongoTemplate = new MongoTemplate(mongoClient(), this.mongoDatabase);
20         return mongoTemplate;
21     }
22 }

这样做主要是因为, MongoClient和MongoTemplate并不受由spring容器管理, 也就无法自动注入到dao中(为了自定义dao各种接口的实现,需要用到MongoTemplate)

 1 @Repository
 2 public class JobInfoRepositoryImpl implements BaseRepository {
 3 
 4     @Resource
 5     private MongoTemplate mongoTemplate;
 6 
 7     private final String collectionName = "jobinfos";
 8 
 9     public List<JobInfo> findAll() {
10         return mongoTemplate.findAll(JobInfo.class, this.collectionName);
11     }
12 
13     public long count(String query) {
14         return this.mongoTemplate.count(new BasicQuery(query), this.collectionName);
15     }
16 }

上面代码中的BaseRepository是我自定义的一个接口, 为了定义一些公共的方法

 

以上是关于springboot 使用mongodb的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot整合MongoDB教程

Springboot 整合mongodb以及mongo数据操作工具类代码实现

基于spring boot的项目中的spring data mongodb配置

SpringBoot启动报错“Consider defining a bean of type ‘xxx.mapper.UserMapper‘ in your configuration.“(代码片段

Java操作MongoDB的增删改查,完整项目分享

Java操作MongoDB的增删改查,完整项目分享