使用spring数据mongodb在Java中创建mongodb数据库用户
我需要使用SpringDataMongoDB在SpringBoot应用程序中创建一个mongodb数据库用户。我将创建此用户作为应用程序启动的一部分。 我找不到任何使用SpringDataMongoDB进行此操作的参考。使用spring数据mongodb在Java中创建mongodb数据库用户,java,mongodb,spring-boot,spring-data,spring-data-mongodb,Java,Mongodb,Spring Boot,Spring Data,Spring Data Mongodb,我需要使用SpringDataMongoDB在SpringBoot应用程序中创建一个mongodb数据库用户。我将创建此用户作为应用程序启动的一部分。 我找不到任何使用SpringDataMongoDB进行此操作的参考。 使用Spring data mongodb是否可能实现这一点?我过去也遇到过同样的问题,最后在加载上下文之前创建了用户,如下所示: @Configuration @EnableAutoConfiguration @ComponentScan public class Appli
使用Spring data mongodb是否可能实现这一点?我过去也遇到过同样的问题,最后在加载上下文之前创建了用户,如下所示:
@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);
}
}
@配置
@启用自动配置
@组件扫描
公共类应用程序扩展了SpringBootServletInitializer{
@抑制警告(“资源”)
公共静态void main(最终字符串[]args){
createMongoDbUser();
ConfigurableApplicationContext上下文=SpringApplication.run(Application.class,args);
}
私有void createMongoDbUser(){
MongoClient mongo=新的MongoClient(主机、端口);
MongoDatabase db=mongo.getDatabase(db);
Map commandArguments=new BasicDBObject();
commandArguments.put(“createUser”,用户名);
commandArguments.put(“pwd”,USER_pwd);
字符串[]角色={“读写”};
commandArguments.put(“角色”,角色);
BasicDBObject命令=新的BasicDBObject(commandArguments);
db.runCommand(command);
}
}
Spring data mongodb在声明您的mongo db工厂时,如果找不到数据库,它将自己创建数据库
例如,我使用以下内容在xml中声明我的db工厂:
<mongo:db-factory id="mongofactory" dbname="dbNameHere" mongo-ref="mongo" />
我不必自己创建它,它是由spring data mongodb在第一次启动may app时创建的。为什么不能直接在mongo中创建用户并让spring boot使用该用户。。。