SpringBootでWebアプリを作るときにいつもやることを忘れないようにφ(..)メモメモ
開発環境はEclipse4.5+Windows10+Gradle+Git
おしながき
- Spring Initializrでひな形プロジェクトを作成
- .gitignoreの設定
- build.gradleの設定
- application.propertiesの設定
- パッケージ構成の設定
Spring Initializrでひな形プロジェクトを作成
まずは、Eclipseプロジェクトを作成。
なんと、Springのひな形を作る便利なWebサービス「Spring Initializr」があるので、それを使って作成
設定はこんな感じ。

右側のDependencyで必要なライブラリを追加しておく。
好きな構成は、Web+Thymeleaf+JPA(+Security)。初期開発ではインメモリDBのH2を使う。
注意 上のほうにある「Maven Project」を「Gradle Project」に変更することを忘れない!!
「Generate Project」ボタンを押すと、Gradleプロジェクトのzipファイルをダウンロードできます
あとは、zipファイルを展開して、EclipseでGradleプロジェクトのインポートをすればOK

.gitignoreの設定
ソースコードはGitで管理するので、.gitignoreを追加。.gitignoreの作成は、もちろんgibo
giboすてき、gibo
$ gibo Java Eclipse Gradle > .gitignore
作成した.gitignoreはこちらのGistに .gitignore Eclipse Java Gradle: generated by gibo · GitHub
build.gradleの設定
次のbuild.gradleの編集。よく使うライブラリをdependenciesに追加する
最終的にはこんな感じ。
dependencies {
//Spring Initializrで設定された依存関係
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-security')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('com.h2database:h2')
testCompile('org.springframework.boot:spring-boot-starter-test')
//ThymeleafでSpring Securityの機能を使うために追加
compile('org.thymeleaf.extras:thymeleaf-extras-springsecurity4')
//よく使うライブラリたち
compile 'org.projectlombok:lombok:1.16.8'
compile 'org.apache.commons:commons-csv:1.2'
compile 'org.apache.commons:commons-lang3:3.4'
compile 'org.apache.commons:commons-io:1.3.2'
compile 'org.apache.commons:commons-collections4:4.1'
//SpringでDBUnitを楽に使うためのライブラリ
testCompile 'com.github.springtestdbunit:spring-test-dbunit:1.3.0'
}
application.propertiesの設定
application.propertiesを追加。だいたいよく使うのは同じなので、あらかじめ用意しておく。
以下のサイトにまとまっているので、必要に応じて追加・修正 Appendix A. Common application properties
よく使う設定をまとめたapplication.propertiesはこちらのGistに application.properties template for Spring Boot · GitHub
パッケージ構成の設定
いつも使う設計や構成はだいたい決まっているので、ひな形を作っておく。
個人的に好きな構成は以下の通り
├─ src/main/java
│ └─ com.example
│ ├─ app ... アプリケーション層のパッケージ
│ │ ├─ foo
│ │ │ └─ FooController.java
│ │ ├─ ErrorPageController.java
│ │ └─ GlobalExceptionHandler.java
│ ├─ domain ... ドメイン層のパッケージ
│ │ ├─ model
│ │ │ └─ BarEntity.java
│ │ ├─ repository
│ │ │ └─ BarRepository.java
│ │ └─ service
│ │ └─ FooService.java
│ ├─ utils ... 共通で使うUtilityのパッケージ
│ │ └─ Utils.java
│ ├─ DemoApplication.java ... SpringBootServletInitializerの具象クラス
│ └─ WebSecurityConfig.java ... WebSecurityConfigurerAdapterの具象クラス
└─ src/main/resources
├─ templates ... Thymeleafのテンプレート
│ ├─ foo
│ │ └─ index.html
│ ├─ common ... 共通UIパーツ
│ │ └─ header.html
│ └─ error ... エラーページ
│ ├─ 403.html
│ ├─ 404.html
│ └─ 500.html
├─ static
│ ├─ dist ... 3rd-partyのjs/css
│ │ └─ bootstrap
│ ├─ css
│ ├─ fonts
│ └─ js
└─ application.properties
これで一通りの準備が完了!!
参考になる書籍

Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/21
- メディア: 大型本
- この商品を含むブログ (1件) を見る

- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2017/12/20
- メディア: 単行本
- この商品を含むブログを見る

- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2018/01/30
- メディア: 単行本
- この商品を含むブログを見る

はじめてのSpring Boot―スプリング・フレームワークで簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槙俊明
- 出版社/メーカー: 工学社
- 発売日: 2016/09/01
- メディア: 単行本
- この商品を含むブログ (1件) を見る
参考にしたサイト様
- [Java] Maven を使った Spring MVC プロジェクトのセットアップ方法 | tekboy
- Spring Initializr
- Eclipse RCP, RAP Blog: Spring MVC + Thymeleaf による WEB アプリケーション開発(1)プロジェクト作成
- Spring Bootをはじめる時にやるべき10のこと
- 春だから!Javaでの開発にSpring Bootを使おう!
- Spring Boot + Gradle + IntelliJ IDEAの環境に + Spring Loaded - Qiita
- Spring3のSpring MVCでなるべく最小単位のHello world - Qiita
- 気付いたら.gitignoreはgiboで自動生成する時代になっていた - Qiita
- gibo でいいじゃんという話 - ちなみに