LoginSignup
0
3

More than 3 years have passed since last update.

【Java】Spring BootでWebアプリ開発するためのサンプルプロジェクト

Last updated at Posted at 2020-08-08

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する方法を採用していることです。

サンプルプロジェクトのライブラリ構成

サンプルプロジェクトのライブラリは以下の通りです。

<引用元>
https://github.com/hrk-okd/spring-sample/blob/0710e4585767eb3dc260054b57d7607a9543bb60/spring-mvc/build.gradle#L18-L44

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のソース取得を制限されることは稀です。
自分が気持ち良く仕事ができるようにしておく上でも、情報をまとめたソースをアップしておきましょう。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3