2016-11-01 9 views
0

springデータmongodbを使用してSpringブートアプリケーションでmongodbデータベースユーザを作成する必要があります。私はアプリケーションの起動の一環としてこのユーザーを作成します。 春のデータmongodbを使ってこれを行うための参照が見つかりませんでした。 Springデータmongodbを使用すれば可能ですか?springデータを使用してJavaでmongodbデータベースユーザを作成するmongodb

+0

なぜあなたはmongoで直接ユーザーを作成し、そのユーザーを使用するためにスプリングブートを要求できません... –

答えて

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

それができるならば春データのMongoDBは全て自身でDBを作成します。あなたのmongo-db工場を宣言するとき、それを見つけません。

たとえば、私は以下を使用してXMLに私のDB-工場を宣言:

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

私はそれが焼成時に、ばねデータのMongoDBによって作成された、それを自分自身を作成する必要はありませんでしたが最初にアプリも時間。

関連する問題