にゃんきち(੭ˊ꒳​ˋ)੭✧

はっひゃー!借金返済がんばるば~ଘ(੭ˊ꒳​ˋ)੭✧

IntellijでEmbeddedStorageを使ってJava22で実装してみた

Intellijを起動

EmbeddedStorageを使った実装

  • gradleでプロジェクトを作成する。
  • build.gradleに以下を記載
dependencies {
    implementation 'org.eclipse.store:storage-embedded:1.4.0'
}
  • 以下のコードを作成
package org.example;

import org.eclipse.store.storage.embedded.types.EmbeddedStorage;
import org.eclipse.store.storage.embedded.types.EmbeddedStorageManager;

import java.time.LocalDateTime;

public class EmbeddedStorageMain {

    public static void display() {
        EmbeddedStorageManager storageManager = EmbeddedStorage.start();
        System.out.println((LocalDateTime)storageManager.root());

        storageManager.shutdown();
    }

    public static void store() {
        EmbeddedStorageManager storageManager = EmbeddedStorage.start();
        storageManager.setRoot(LocalDateTime.now());
        storageManager.storeRoot();
        storageManager.shutdown();
    }

    public static void main(String[] args) {
        System.out.println("Hello EmbeddedStorage!");
        store();
        display();
    }
}

実行時の出力結果

  • 日時を表すLocalDateTimeオブジェクトEmbeddedStorageに保存され、保存されたオブジェクトを読み込み、出力できている
Hello EmbeddedStorage!
2024-07-30T20:38:32.542190700

実行前の構成

実行後の構成

  • EmbeddedStorageの保存先としてstorageというフォルダが出来上がる。

感想

  • オブジェクトを永続化して保存するときに使えそうに思う。
  • オブジェクトを永続化する方法としてはSerializableを使いファイルに書き出すコードを実装することができるが、EmbeddedStorageを使えばそのあたり機能を提供してくれるので便利。
  • 便利と言えば便利だが、大規模システムだと使い道としてはテスト用のプログラムに限られそうに思うがどうなのだろうか。最近Javaから遠ざかっているのでよくわからず...
  • ちなみに、Java22でもちゃんと動くみたいです

参考サイト

nowokay.hatenablog.com

blog1.mammb.com