IntellijでEmbeddedStorageを使ってJava22で実装してみた (original) (raw)
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でもちゃんと動くみたいです