SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


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

 前回、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:サンプルアプリケーションのソースコード一覧

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Beanを登録するためのアノテーション

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Spring Bootで作るマイクロサービス連載記事一覧

もっと読む

この記事の著者

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11509 2020/06/01 18:57

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング