Spring Bootで使われる基本的なアノーテーションと設定の仕組み

CodeZine / 2019年5月10日 11時0分

 前回、Spring Bootを使って簡単なサンプルを紹介しましたが、今までのJavaプログラムを知っている方にとっては非常に少ないコードで実行できることに驚いた方もいるかもしれません。また、実装部分のコードがPOJO(Plain Old Java Object)クラスになっていることに気がつく方も多いことでしょう。一方で実装しているコードにはアノテーションが記述されています。Spring Bootではこれらのアノテーションの意味は非常に大切になります。今回はSpring Bootを利用する上で知っておくべき、基本となる部分の仕組みを簡単なサンプルアプリケーションを通じて紹介します。

■サンプルアプリケーションの概要

 サンプルアプリケーションは図1に示すような簡単な住所録管理アプリケーションです。
図1:サンプルアプリケーションのイメージ

 このアプリケーションでは、表1のAPIを提供します。

/contact/add      POST    新規に連絡先データを登録する
/contact/list          GET     登録してあるデータ一覧を取得する
/contact/item/{id}       GET         指定したidの連絡先データ情報を取得する
/contact/item/{id}   POST    指定したidの連絡先データ情報を更新する
/contact/item/{id}   DELETE   指定したidの連絡先データを削除する

●サンプルアプリケーションの実行方法

 サンプルコードはSpring Bootのアプリケーション(sample/java以下)とHTMLやJavaScriptなどのWebリソース(sample/web以下)の2つに分かれています。

 Webリソースは既にサーバ内にApacheなどの他のWebサーバが利用できるのであればそちらを利用するとよいでしょう。

 HTML側はサンプルアプリケーションがあるサーバと同じ場所でなくても動作するようになっています。その場合には、アクセスできる場所に配置できれば、どのようなパスであっても問題ありません。

 また、リスト1に記載されているAPIサーバへのアクセス先URLを変更してください。
window.api = "http://localhost:8081/contact";

 利用できるWebサーバがない場合には、設定ファイルをリスト2のように変更することで、アプリケーション「Tomcat」を起動し、これを通じてアクセス可能です。

 ただし、起動するポート番号を変更した場合には、前述したAPIサーバへのアクセス先URLも変更する必要があります。
app.web.prefix = /web app.web.resource = <sample/webのあるフォルダ> # 設定例 ( C:¥samples/web/ 以下にsample/web以下のHTMLソースを保存した時 ) # app.web.resource = file://C:/sample/web/ # tomcatを起動するポート server.port = 8081 # (以下、省略)

 起動はリスト3のように行います。起動に成功したら、http://localhost:8081/web/index.htmlにアクセスしてください。

 ただし、WebリソースはES6のコードを含んでいますので、最新のES6対応のブラウザ(ChromeやEdgeなど)を利用してください。
./gradlew bootRun ( MacやLinuxの場合 ) gradlew.bat bootRun ( Windowsの場合 )

[Note]Spring Bootを使ったサーバサイドHTMLアプリケーションについて

 Spring BootでのJSPを使ったアプリケーションやHTMLテンプレートエンジンを使ったHTMLアプリケーションの開発も問題なく行えます。しかし、TomcatなどのWeb Application Server上で開発する方法に比べて実績やノウハウなどの情報は多くはありません。

 また、Webサイトのように日々の編集運用が必要になるものをSpring Bootを用いて開発するメリットは筆者はあまり感じませんでした。

 一方、Spring Bootが持つ他のサービスなどの自動設定機能を生かしたものとしては、筆者はマイクロサービスとして利用するAPIサーバなどが利用用途としてより適していると考えています。

 そのため、サンプルアプリケーションもHTML側の実装について意図的に分離してあります。また、今回はHTML側の実装については趣旨からはずれるため説明は行いません。

■サンプルコードのソースコード構造

 サンプルアプリケーションがどのような動作をするのかがわかったところで、実際のソースコードの説明をしていきます。

 ソースコードは図2に示すように大きくわけて4つのグループで構成されていますが、処理のメインなるAPI部分の実装は、ContactControllerのみとなっています。

 しかしながら、処理のイメージがつかめないソースもいくつか存在しています。今回はソースコード全体にかかわる部分について紹介し、次回、個別の内容について紹介していきます。
図2:サンプルアプリケーションのソースコード一覧

WINGSプロジェクト 小林 昌弘[著]

【関連記事】
Javaの標準機能だけで実現する帳票印刷の基本
Spring Bootで始める簡単Webプロジェクト~ひな型の作成からWeb APIの実装まで
多様化するJavaのフレームワーク問題を解決する、「Spring Boot」とは?
新環境に適応して変化し続けるJava、Dockerコンテナ対応やマイクロサービスをサポートするプロジェクトなど【Oracle Code One 2018】
HTTP Client APIでの接続カスタマイズからWebSocketでの接続まで行う

■記事全文へ

この記事に関連するニュース

トピックスRSS

ランキング