sql >> データベース >  >> NoSQL >> MongoDB

埋め込まれたmongodbにアプリケーションのシャットダウン時にデータを保持させる方法は?

    今では可能です それ を参照してください 。

    次のコードは、それを実装するための私のソリューションを示しています。

    public class MongoInMemory {
     private int port;
     private String host;
     private MongodProcess process = null;
    
     public MongoInMemory(int port, String host){
        this.port = port;
        this.host = host;
     }
    
     @PostConstruct
     public void init() throws IOException {
        Storage storage = new Storage(
                System.getProperty("user.home") + "/.ttraining-storage", null, 0);
    
        IRuntimeConfig runtimeConfig = new RuntimeConfigBuilder()
                .defaults(Command.MongoD)
                .artifactStore(new ExtractedArtifactStoreBuilder()
                        .defaults(Command.MongoD)
                        .download(new DownloadConfigBuilder()
                                .defaultsForCommand(Command.MongoD).build())
                        .executableNaming(new UserTempNaming()))
                .build();
    
        IMongodConfig mongodConfig = new MongodConfigBuilder()
                .version(Version.Main.PRODUCTION)
                .net(new Net(host, port, false))
                .replication(storage)
                .build();
    
        MongodStarter runtime = MongodStarter.getInstance(runtimeConfig);
        process = runtime.prepare(mongodConfig).start();
     }
    
     @PreDestroy
     public void stop(){
        process.stop();
     }
    }
    

    構成クラスで、それをBeanとして定義します

    @Bean
    public MongoInMemory mongoInMemory(
        @Value("${spring.data.mongodb.port}") int port,
        @Value("${spring.data.mongodb.host}")  String host) {
            return new MongoInMemory(port, host)
    }
    

    最後に、エントリポイントに埋め込まれているmongodb自動構成を削除します

    @SpringBootApplication(exclude = EmbeddedMongoAutoConfiguration.class)
    

    PS :依存関係から削除 cz.jirutka.spring:embedmongo-spring

    PSS :Spring-boot 2.0.0.RELEASE

    でテスト済み

    PSSS :また、パスをapplication.propertiesでプロパティとして定義したり、コンストラクターで定義したりすることもできます



    1. $andをMongoDBで使用する複数の$regex

    2. TypeError:ドキュメントの更新時にオブジェクト以外で呼び出されるObject.keys

    3. 私に問題を引き起こしているデータベースのMongorestore

    4. MongoDBとは何ですか?どのように機能しますか?