Spring Bootで簡単なWebアプリケーションを構築_2

投稿者: | 2019年1月8日

こちらで示したWebアプリケーションをSpring Bootで作ってみましょう。

 

ではまず、STS (Spring Tool Suite)で新規プロジェクトを作成します。

メニューバーの「File」をクリックし、「New」→「Spring Starter Project」と進みます。

 

「Name」欄を Sample Entry とし、後はデフォルトのまま「Next」。

 

Dependencies では 「Web」のみ選択し「Finish」をクリックします。

 

pom.xmlを編集します。

画面のテンプレートとしてはThymeleaf、データベースとしてはHSQLDBを使用しているので、各々 <dependencies>タグ下に次のdependencyを追記します。

 

View部分の画面を作成します。src/main/resourcesフォルダにあるtemplatesフォルダを右クリックし、「New」→「File」へ進みます。

 

「File name」は index.html として「Finish」。

 

index.htmlは以下です。

 

次にEntityクラスを作成します。プロジェクトの src/main/java フォルダを右クリックし、「New」→「Class」。

 

「Name」は SampleEntryData とします。その他の部分はデフォルト。

 

SampleEntryData.java は以下。ID、 名前、投稿内容のみのシンプルな構造です。

IDはauto_incrementにしたいので、アノテーションにIDENTITYをセットしています。

 

データアクセスを行うためのRepositoryインタフェース作成に移ります。com.example.demo パッケージを右クリックし、「New」→「Package」へと進みます。

 

「Name」欄に com.example.demo.repositories を入れて「Finish」。

 

今度は先ほど作成した com.example.demo.repositories を右クリックして、interface作成画面を表示させます。

 

「Name」に SampleDataRepository を入力して「Finish」。

 

SampleDataRepositoryはこちら。先ほど作成したSampleEntryDataクラスと紐付けられています。

 

最後のJavaクラスであるコントローラーを作成します。src/main/java フォルダを右クリックしてClass作成画面へ進み、SampleEntryController クラスを作成します。

 

SampleEntryControllerクラス。画面を表示した際に。データベースに登録されたデータを全て取得します。

これが データアクセスの役割を担う SampleDataRepository の findAll メソッド一つで実現できてしまいます。

また、送信ボタンを押すと入力した内容をデータベースに書き込み、redirect で同じページを表示します。

データベースへの書き込みは、同じくSampleDataRepository の saveAndFlush メソッドのみです。

 

最後に、src/main/resources 以下の application.properties を開き、次の内容を記述します。

特に最終行の設定は、データを永続化させるのに必要です。これがないと、アプリケーションが終了するたびにテーブルがドロップされてしまう様です。

 

アプリケーションを実行してみましょう。データベースを起動したあと、プロジェクトを右クリックして、「Run As」から「Spring Boot App」を実行。

 

無事起動したら、ブラウザで http://localhost:8080 へアクセスしてみましょう。こちらのページで示した画面が表示されるはずです。

またデータベースを確認すると、特にテーブルをCREATEしたわけでもないのに、必要なテーブルが自動で作成されていることがわかります。