Intellij+SpringBoot2.0+Thymeleafにてコンテンツを自動更新させる

SpringBoot2.0が公開されたのですが、

build.gradleにてプロパティが無いと怒られてしまいました。

 

調べたところ、リソースリローディングさせるには下記の変更が必要でした。

変更前(SpringBoot2.0以前)

bootRun {
    addResources=true
}

変更後(SpringBoot2.0)

bootRun {
    sourceResources sourceSets.main
}

これでbootRunさせれば起動され、Thymeleafのコンテンツも自動更新されます。

SpringFrameworkにて外部ファイルを読み込む

利用環境

  • Spring boot 2.0.0

Google検索で外部ファイルの読み方を調べたところ、Propertiesの読み方が多く

事前にCSVやその他ファイルを読み込む方法が無かったので記事にしました。

 

ファイルの設置個所

今回は src/main/resources に以下にファイルを事前に置いておきます。

方法

ResourceLoaderを使用します。

下記をController内にて使用してください。

@Autowired
protected ResourceLoader resourceLoader;

次にresourceLoaderからファイルを読み込みます。

この時に”classpath:”+file名をしてあげてください。

resourceLoader.getResource("classpath:" + "item_dic.csv")

getResourceした際にResourceが返ってくるので、これを操作することでファイルを取得することが出来ます。

ResourceのAPIはこちらのドキュメントで確認できます。

getFile()やgetInputStream()がありますので、後は適宜操作してあげて下さい。