使用spring数据mongodb在Java中创建mongodb数据库用户

时间:2016-11-01 19:06:44

标签: java mongodb spring-boot spring-data spring-data-mongodb

我需要使用spring数据mongodb在Spring启动应用程序中创建一个mongodb数据库用户。我将创建此用户作为应用程序启动的一部分。 我使用spring数据mongodb找不到任何参考。 这可以通过使用Spring数据mongodb吗?

2 个答案:

答案 0 :(得分:0)

我过去遇到了同样的问题,最后在上下文加载之前创建了用户,如下所示:

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {

    @SuppressWarnings("resource")
    public static void main(final String[] args) {
        createMongoDbUser();

        ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
    }

    private void createMongoDbUser() {
        MongoClient mongo = new MongoClient(HOST, PORT);
        MongoDatabase db =  mongo.getDatabase(DB);
        Map<String, Object> commandArguments = new BasicDBObject();
        commandArguments.put("createUser", USER_NAME);
        commandArguments.put("pwd", USER_PWD);
        String[] roles = { "readWrite" };
        commandArguments.put("roles", roles);
        BasicDBObject command = new BasicDBObject(commandArguments);
        db.runCommand(command);
    }
}

答案 1 :(得分:0)

Spring-data-mongodb将在声明你的mongo-db工厂时,如果无法找到它,将自行创建数据库。

例如,我使用以下命令在xml中声明我的db-factory:

<mongo:db-factory id="mongofactory" dbname="dbNameHere" mongo-ref="mongo" />

我没有自己创建它,它是由spring-data-mongodb在第一次发射时创建的。