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 でいいじゃんという話 - ちなみに