首页 > 解决方案 > Spring Boot + MongoDB:如何重用连接

问题描述

我正在使用 SpringBoot + MongoDB。我按如下方式创建了我的对象。我能够在我的服务/控制器中 @Autowrite DocumentStoreConfig 对象并调用 Mongo。

示例调用:

    @Autowired
    private DocumentStoreConfig docStoreConfig;
this.docStoreConfig.mongoClient().getDatabase("db_name").getCollection(collection).insertOne(doc);

我看到的问题是每个调用都会执行一个“新”MongoClient 并打开一个新连接。

建立池的指导是什么……或重用相同的连接对象,而不是付出打开全新连接的痛苦代价。

@Configuration
public class DocumentStoreConfig extends AbstractMongoConfiguration {


    @Value("${spring.data.mongodb.uri}")
    private String connectionString;

    @Value("${documentstore.database}")
    private String databaseName;

    @Override
    public String getDatabaseName() {
        return this.databaseName;
}


    @Override
    public MongoClient mongoClient() {
        System.out.println("**** \n\n\n NEW MONGO \n\n\n");
        return new MongoClient(new MongoClientURI(this.connectionString));
    }

    public MongoCollection<Document> getFailureCollection() {
        return this.mongoClient().getDatabase(this.databaseName).getCollection("failure");
    }

}

标签: mongodbspring-boot

解决方案


推荐阅读