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是我自定義的一個接口, 為了定義一些公共的方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM