記事目次
- 【Spring 4.0.5対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (1)
- 【Spring 4.0.5対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (2)
- 【Spring 4.0.5対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (3)
お仕事では Java を使う機会が多くて、今までは Struts が多かったんだけど、昨今の脆弱性云々でさすがにまずいだろということで、調査を兼ねて Spring を触ってます。家で素振りせずにお仕事でいきなり投入もまずいしね。
やりたいことはタイトルの通り、Web API の作成で、DB の操作に Spring Data JPA を使ってみたいと思います。
この記事を書いた動機はいまいさんに煽られたからです。
@nnasaki ブログ、エントリ薄いよ!なにやってんのッ!!
— いまいまさのぶ (@masanobuimai) 2014, 6月 24
というのは、半ば冗談のような本当のような感じがしますが、改めてこの記事を書いた動機は http://spring.io/ のドキュメントが MVC と JPA でトピックが独立していて、組み合わせたイメージがわかりにくかったのと、最新の Spring 4 の日本語ドキュメントが少なかったので書いてみました。
Spring とは
ぐぐったほう早いので説明しません。タイトルのキーワードそれぞれの概要は次の通り。
- Spring Boot
- アプリケーションサーバー(Tomcat等)を内包して、 jar 単体で動くようにするもの
- Spring MVC
- Spring Data JPA
- DB等へのデータ保存を簡単にするフレームワーク
Web API 仕様
http://localhost:8080/customer
に { "password": "test_password" }'
を POST すると顧客が登録できます。
http://localhost:8080/customer/1
に アクセスすると顧客を取得できます。
{ id: 1 password: "test_password" }
とりあえず最初はこれだけです。
DB 仕様
Customer テーブルを作ります。ID とパスワードがあるだけです。
ディレクトリ構成
Spring Boot の推奨は Using the “default” package です。ただ、全部同じパッケージだとさすがに見通しが悪いのでこの構成は OK みたいです。
com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web +- CustomerController.java
もちろん、他の構成も可能ですが、面倒なので今回はこの構成に乗っかりました。
クラス図
IntellJ IDEA 13 で自動生成したものですが、こんな感じです。
詳細な解説は次回
GitHubにソースをアップして解説しようと思ったけど、時間が無くなったので今日はここまで。Java なのに随分簡単だなぁという印象です。