2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javaで自作のYAMLファイル(*****.yml)を読み込む方法

Last updated at Posted at 2018-10-11

使用している環境

Tomcat:9
JDK:OpenJDK8(OPENJ9)
spring-boot:2.0.5

作成した処理(多分邪道だが動いたやつ)

読み込みたい設定ファイルはこれ↓↓↓

[プロジェクトルート]/src/main/resources/test.yml
value:
  item1:
    aaa: 12345
    bbb: 22345
  item2:
    dog: poti
    cat: tama

Javaの記述はこれ↓↓↓

xxxxx.java
DefaultResourceLoader resourceLoader;
InputStreamReader reader;

try {
	resourceLoader = new DefaultResourceLoader();
	Resource resource = resourceLoader.getResource("classpath:test.yml");
	reader = new InputStreamReader(resource.getInputStream());

    Yaml yaml = new Yaml();
    map = (Map<String, Object>) yaml.load(reader);
    
    System.out.println(ValueMap.toString());

} catch (Exception e) {
	e.printStackTrace();
}

ResourceLoaderを使えばいいと思い、当初、

@Autowired
ResourceLoader resourceLoader;

という宣言を試したのですが、Autowiredアノテーションが効いていないのか、NullPointerExceptionで落ちました。
ということで、DefaultResourceLoader クラスを使うという、邪道というか強引な方法で取得しました。

作成した処理(結局ダメだったやつ)

※ この処理は、開発環境のeclipseでは動いていたのですが、Warに固めてTomcatに配置したところ、ディレクトリ構成が変わったためか動かなくなりました。

読み込みたい設定ファイルはこれ↓↓↓

[プロジェクトルート]/src/main/resources/test.yml
value:
  item1:
    aaa: 12345
    bbb: 22345
  item2:
    dog: poti
    cat: tama

Javaの記述はこれ↓↓↓

xxxxx.java
InputStreamReader reader;

try {
	reader = new InputStreamReader(ClassLoader.getSystemResourceAsStream("test.yml"));

	Yaml yaml = new Yaml();
	Map<String, String> ValueMap = (Map<String, String>) yaml.load(reader);

	System.out.println(ValueMap.toString());

} catch (Exception e) {
	e.printStackTrace();
}

ValueMapに設定された内容はこんな感じ↓↓↓
ValueMapの内容.png

という感じで取得できました。

依存関係の追加

上記の形で取得できたので、「どれどれwarに固めよう」と思ったところで、
*  パッケージorg.yaml.snakeyamlは存在しません*
と怒られ、エラーで落ちました。
↓↓↓
mavenの依存関係に「snakeyaml」を追加して解決です。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?