Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

Spring Bootで作るマイクロサービス 第3回

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/05/10 11:00

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

目次

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

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

図1:サンプルアプリケーションのイメージ
図1:サンプルアプリケーションのイメージ

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

表1:提供するAPI
エンドポイント HTTPメソッド  概要   
/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を変更してください。

[リスト1]APIサーバへのアクセスURL(web/js/contact.jsの抜粋)
window.api  = "http://localhost:8081/contact";

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

 ただし、起動するポート番号を変更した場合には、前述したAPIサーバへのアクセス先URLも変更する必要があります。

[リスト2]サンプルアプリケーションの設定内容(java/src/main/resources/application.propertiesの抜粋)
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など)を利用してください。

[リスト3]サンプルアプリケーションの起動方法
./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:サンプルアプリケーションのソースコード一覧
図2:サンプルアプリケーションのソースコード一覧

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。個人紹介主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしど...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Spring Bootで作るマイクロサービス
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5