世界のやまさ

SEKAI NO YAMASA

【Spring 4.0 対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (1)

記事目次

お仕事では Java を使う機会が多くて、今までは Struts が多かったんだけど、昨今の脆弱性云々でさすがにまずいだろということで、調査を兼ねて Spring を触ってます。家で素振りせずにお仕事でいきなり投入もまずいしね。

やりたいことはタイトルの通り、Web API の作成で、DB の操作に Spring Data JPA を使ってみたいと思います。

この記事を書いた動機はいまいさんに煽られたからです。

というのは、半ば冗談のような本当のような感じがしますが、改めてこの記事を書いた動機は http://spring.io/ のドキュメントが MVCJPA でトピックが独立していて、組み合わせたイメージがわかりにくかったのと、最新の Spring 4 の日本語ドキュメントが少なかったので書いてみました。

Spring とは

ぐぐったほう早いので説明しません。タイトルのキーワードそれぞれの概要は次の通り。

Web API 仕様

http://localhost:8080/customer{ "password": "test_password" }' を POST すると顧客が登録できます。

http://localhost:8080/customer/1 に アクセスすると顧客を取得できます。

{
  id: 1
  password: "test_password"
}

とりあえず最初はこれだけです。

DB 仕様

Customer テーブルを作ります。ID とパスワードがあるだけです。

kobito.1403620402.331338.png

ディレクトリ構成

もはや WEB-INF/web.xml は必要ありません!

kobito.1403620035.119706.png

Spring Boot の推奨は Using the “default” package です。ただ、全部同じパッケージだとさすがに見通しが悪いのでこの構成は OK みたいです。

com
 +- example
     +- myproject
         +- Application.java
         |
         +- domain
         |   +- Customer.java
         |   +- CustomerRepository.java
         |
         +- service
         |   +- CustomerService.java
         |
         +- web
             +- CustomerController.java

13. Structuring your code より

もちろん、他の構成も可能ですが、面倒なので今回はこの構成に乗っかりました。

クラス図

IntellJ IDEA 13 で自動生成したものですが、こんな感じです。

kobito.1403623519.105848.png

詳細な解説は次回

GitHubにソースをアップして解説しようと思ったけど、時間が無くなったので今日はここまで。Java なのに随分簡単だなぁという印象です。

情報源