Spring Boot 应用程序如何与 MongoDB 连接

x33g5p2x  于2021-10-15 转载在 Go  
字(2.3k)|赞(0)|评价(0)|浏览(683)

本指南将帮助您在 Spring Boot 应用程序和 MongoDB 数据库之间建立数据库连接桥。您可以通过三种方式将 Spring Boot 应用程序与 MongoDB 数据库连接:

  1. application.properties 文件中定义连接字符串。
    1.基于Java的配置
    1.XML配置

1. application.properties

正如我们所知,Spring Boot 遵循 “约定优于配置” 模型,这有助于开发人员专注于应用程序的核心逻辑而不是配置。您可以在 application.properties 文件中定义 MongoDB 数据库凭据,如下所示,其余工作将由 Spring Boot 完成。
application.properties

#Database connection strings
spring.data.mongodb.host=localhost # host name where mongodb is running
spring.data.mongodb.port=27017 #port number, by default MongoDB uses the 27017 port
spring.data.mongodb.database=mydreamapp #name of the database
spring.data.mongodb.username=admin #user name for db
spring.data.mongodb.password=admin123 # your secret password

2. 基于 Java 的配置

我们可以使用 @Configuration 注解来建立 Spring Boot 应用程序和 MongoDB 数据库之间的连接桥。

package org.websparrow.config;

import com.mongodb.*;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;

import java.util.Collections;

@Configuration
public class MongoDBConfig extends AbstractMongoClientConfiguration {

    @Override
    protected String getDatabaseName() {
        return "myapp";
    }

    @Override
    protected void configureClientSettings(MongoClientSettings.Builder builder) {

        builder.credential(MongoCredential.createCredential(
                "username", "databasename", "password".toCharArray())
        )
                .applyToClusterSettings(settings -> {

                    settings.hosts(Collections.singletonList(new ServerAddress("hostname", 27017)));
                });
    }
}

或者,我们也可以使用以下配置:

package org.websparrow.config;

import com.mongodb.*;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;

import java.util.Collection;
import java.util.Collections;

@Configuration
public class MongoDBConfig extends AbstractMongoClientConfiguration {
    @Override
    protected String getDatabaseName() {
        return "my_dream_app";
    }

    @Override
    public MongoClient mongoClient() {
        ConnectionString connectionString = new ConnectionString("mongodb://localhost:27017/my_dream_app");
        MongoClientSettings mongoClientSettings = MongoClientSettings.builder()
                .applyConnectionString(connectionString)
                .build();

        return MongoClients.create(mongoClientSettings);
    }

    @Override
    public Collection<String> getMappingBasePackages() {
        return Collections.singleton("org.websparrow");
    }
}

3. XML 配置

我们会尽快更新。

相关文章

微信公众号

最新文章

更多