我需要使用spring数据mongodb在Spring启动应用程序中创建一个mongodb数据库用户。我将创建此用户作为应用程序启动的一部分。 我使用spring数据mongodb找不到任何参考。 这可以通过使用Spring数据mongodb吗?
答案 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在第一次发射时创建的。