記事目次
- 【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 Boot の推奨は Using the “default” package です。ただ、全部同じパッケージだとさすがに見通しが悪いのでこの構成はOKみたいです。
Spring とは
ぐぐったほう早いので説明しません。タイトルのキーワードそれぞれの概要は次の通り。 ●Spring Boot ●アプリケーションサーバー(Tomcat等)を内包して、 jar 単体で動くようにするもの ●Spring MVC ●よくある 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とパスワードがあるだけです。![kobito.1403620402.331338.png kobito.1403620402.331338.png](https://qiita-image-store.s3.amazonaws.com/0/31790/de9b80e1-ada8-164a-0b2e-424b2966b74d.png)
ディレクトリ構成
もはや WEB-INF/web.xml は必要ありません!![kobito.1403620035.119706.png kobito.1403620035.119706.png](https://qiita-image-store.s3.amazonaws.com/0/31790/98b6f4b3-bb7f-d29f-1b29-413ce9b5e35f.png)
com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web +- CustomerController.java13. Structuring your code より もちろん、他の構成も可能ですが、面倒なので今回はこの構成に乗っかりました。
クラス図
IntellJ IDEA 13 で自動生成したものですが、こんな感じです。![kobito.1403623519.105848.png kobito.1403623519.105848.png](https://qiita-image-store.s3.amazonaws.com/0/31790/87c260c3-3cbe-f482-35dd-3c3131c77dc4.png)