微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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是我自定义一个接口, 为了定义一些公共的方法

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐