Java(Spring Boot)を使ってWebアプリ開発を進める際のテンプレートです。
下記にサンプルプロジェクトを作りました。
https://github.com/hrk-okd/spring-sample
ソースコードの説明
作成環境
- Windows 10
- jdk-12.0.1
- IntelliJ IDEA Community Edition 2019.1.3 x64
ソース作成の思想
サンプルなので思想というほどのものではありませんが、一点だけ意識して書いたのは「コンストラクタインジェクション」でDIする方法を採用していることです。
サンプルプロジェクトのライブラリ構成
サンプルプロジェクトのライブラリは以下の通りです。
dependencies {
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot
compile group: 'org.springframework.boot', name: 'spring-boot', version: '2.1.6.RELEASE'
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter
compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: '2.1.6.RELEASE'
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.1.6.RELEASE'
// https://mvnrepository.com/artifact/org.projectlombok/lombok
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.8'
// junit 5
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.1'
// mockito 全般
// https://mvnrepository.com/artifact/org.mockito/mockito-core
testCompile group: 'org.mockito', name: 'mockito-core', version: '3.0.0'
// mockito ExtendWith
// https://mvnrepository.com/artifact/org.mockito/mockito-junit-jupiter
testCompile group: 'org.mockito', name: 'mockito-junit-jupiter', version: '3.0.0'
// mockito assertThat().isEqualTo
// https://mvnrepository.com/artifact/org.assertj/assertj-core
testCompile group: 'org.assertj', name: 'assertj-core', version: '3.13.0'
}
spring-boot/spring-boot-starter/spring-boot-starter-web
基本のライブラリです。
Spring Bootを使用するなら、深く考えずに入れておきましょう。
Webアプリケーションを作らない場合、spring-boot-starter-webは除外しても問題ないでしょう。|
lombok
クラスやメソッドに @Getter
や @Setter
のアノテーションを付けることによって、getterやsetterを書く必要がなくなります。これは本当に便利です。
現場によっては余計なプラグインはインストールするなというところもあるでしょう。
でも、僕個人としては、開発効率UPのために全現場で導入必須と考えています。
junit-jupiter
こちらはJUnit5に対応するためのライブラリです。JUnit4で使いにくかった点が改善されているので、可能ならばこちらに対応しておくのが良いでしょう。
mockito-core/mockito-junit-jupiter
mockitoはユニットテストで使用するライブラリで、モックを使用することが可能です。モックのライブラリもいくつかありますが、僕が現場で知って良いと思ったので、こちらを取り込んでいます。
mockito-junit-jupiterは入れなくてもモックを使用することは可能です。ただし、このライブラリで使用できる @ExtendWith
アノテーションを使用すると、フィールドにアノテーションを付けることでモックを作ることが可能。
テストコードの手間も削減できます。
assertj-core
こちらもユニットテストで使用するライブラリで、検証用のメソッドassertとそれに関するメソッドが豊富に揃えられています。
通常のJUnitでは書きにくい内容も楽に検証することが可能です。
まとめ
Spring Bootで開発を行うためのサンプルプロジェクトを用意しました。
実際に開発を行う上ではもっと多くのライブラリが必要になると思いますが、ミニマムから構成して徐々に機能を追加していくには、こういったサンプルを用意しておいた方が良いでしょう。
近年はgithubの台頭もあり、個人でも多くのリポジトリを持てるし公開することも可能。
会社でリポジトリが用意されると思いますが、個人のリポジトリもあらかじめ用意して、必要な情報を素早く取り出せるようにしておくのが良いですね。
客先常駐型のエンジニアは、自分のPCは持ち込めない現場が多いですが、githubのソース取得を制限されることは稀です。
自分が気持ち良く仕事ができるようにしておく上でも、情報をまとめたソースをアップしておきましょう。