2016-11-01 5 views
0

Ich muss eine mongodb Datenbank-Benutzer in einer Spring-Boot-Anwendung mit Federdaten mongodb erstellen. Ich werde diesen Benutzer als Teil des Anwendungsstarts erstellen. Ich konnte keine Referenz dafür finden, Federdaten mongodb zu verwenden. Ist das möglich mit Spring-Daten mongodb?Erstellen mongodb Datenbank Benutzer in Java mit Spring-Daten mongodb

+0

Warum können Sie nicht den Benutzer direkt in Mongo erstellen und Spring Boot bitten, diesen Benutzer zu verwenden ... –

Antwort

0

hatte ich das gleiche Problem in der Vergangenheit und ich am Ende durch den Benutzer vor dem Kontextlast zu schaffen, wie folgt aus:

@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); 
    } 
} 
0

Frühlings-data-mongodb wird von selbst die DB alle schaffen, wenn es kann finde es nicht, wenn du deine mongo-db-Fabrik deklarierst.

So erkläre ich meine db-Fabrik in xml mit dem folgenden:

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

Ich muss es selbst nicht schaffen, ist es durch die Feder-data-mongodb beim Brennen erstellt wurde app kann das erste Zeit.