MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara membuat mongodb yang disematkan menyimpan data saat aplikasi dimatikan?

Sekarang mungkin lihat itu .

Kode berikutnya hanya menunjukkan solusi saya untuk mengimplementasikannya.

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

Di kelas konfigurasi, definisikan itu sebagai kacang

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

Akhirnya, hapus konfigurasi otomatis mongodb yang disematkan di titik masuk Anda

@SpringBootApplication(exclude = EmbeddedMongoAutoConfiguration.class)

PS :Hapus dari dependensi cz.jirutka.spring:embedmongo-spring

PSS :Diuji pada Spring-boot 2.0.0.RELEASE

PSSS :Anda juga dapat mendefinisikan jalur sebagai properti di application.properties dan juga di konstruktor



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa terhubung ke mongodb menggunakan express tanpa luwak?

  2. DeprecationWarning:Mendengarkan acara di kelas Db telah ditinggalkan dan akan dihapus di versi utama berikutnya

  3. Mongoid memberikan konstanta Mongo . yang tidak diinisialisasi

  4. Mongoose - RangeError:Ukuran Tumpukan Panggilan Maksimum Melebihi

  5. Bagaimana saya bisa menanyakan mongodb menggunakan mongoid/rails tanpa batas waktu?