Spring Boot Sample Application

Build Status Documentation Status Job Status

ローカル環境

ソースのダウンロード

$ git clone https://github.com/miyabayt/spring-boot-doma2-sample.git

開発環境(IntelliJ)

必要なプラグイン・設定

Docker APIの有効化

Windows10の場合

MacOSXの場合

$ brew install socat
$ socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock &

Docker Toolboxの場合

Dockerの起動

MySQLなどのサーバーを立ち上げる。

Windows10、MacOSXの場合

$ cd /path/to/spring-boot-doma2-sample
$ ./gradlew composeUp

Docker Toolboxの場合

FakeSMTPの起動

メール送信のテストのためFakeSMTPを立ち上げる。

$ cd /path/to/spring-boot-doma2-sample
$ ./gradlew startFakeSmtpServer

アプリケーションの起動

管理側

$ # admin application
$ cd /path/to/spring-boot-doma2-sample
$ ./gradlew :sample-web-admin:bootRun

フロント側

$ # front application
$ cd /path/to/spring-boot-doma2-sample
$ ./gradlew :sample-web-front:bootRun

バッチ

$ # 担当者情報取り込みバッチを起動する
$ cd /path/to/spring-boot-doma2-sample
$ ./gradlew :sample-batch:bootRun -Pargs="--job=importStaffJob"

接続先情報

テストユーザー [email protected] / passw0rd

接続先 URL
管理側画面 http://localhost:18081/admin
管理側API http://localhost:18081/admin/api/v1/users
フロント側 http://localhost:18080/

データベース接続先

# Windows10、MacOSXの場合
mysql -h 127.0.0.1 -P 3306 -uroot -ppassw0rd sample

# Docker Toolboxの場合
mysql -h 192.168.99.100 -P 3306 -uroot -ppassw0rd sample

ブラウザを用いた自動テスト(結合テスト)

実行方法

テスト対象 実行方法
管理側画面 gradlew :it/sample-web-admin:test
フロント側 gradlew :it/sample-web-front:test

※ IntelliJから起動する場合は他のテストと同様にテストクラスを選択して実行してください

CIなどで結合テストを行わない場合は以下のようにして対象から外します

$ ./gradlew clean test --info -x :it/sample-web-admin:test -x :it/sample-web-front:test

コード自動生成(おまけ)

$ cd /path/to/spring-boot-doma2-sample
$ ./gradlew codegen -PsubSystem=system -Pfunc=client -PfuncStr=取引先 [-Ptarget=dao|dto|repository|service|controller|html]

その他

IntelliJから自動テストが実行できない

自動テスト実行時に以下のように表示されて実行できない場合があります

 Command Line is too Long. Shorten command line for your_test or also for JUnit default configuration. 

その場合は以下を試みましょう(参考)

以下のファイルをエディタで開く

/path/to/spring-boot-doma2-sample/.idea/workspace.xml 

以下を

<property name="dynamic.classpath" value="true" />

以下のタグの中に追加する

  <component name="PropertiesComponent">
.
.
.
  </component>

参考

プロジェクト 概要
Lombok Project 定型的なコードを書かなくてもよくする
Springframework Spring Framework
Spring Security セキュリティ対策、認証・認可のフレームワーク
Doma2 O/Rマッパー
spring-boot-doma2 Doma2とSpring Bootを連携する
Flyway DBマイグレーションツール
Thymeleaf テンプレートエンジン
Thymeleaf Layout Dialect テンプレートをレイアウト化する
WebJars jQueryなどのクライアント側ライブラリをJARとして組み込む
ModelMapper Beanマッピングライブラリ
Ehcache キャッシュライブラリ
Spock テストフレームワーク
Mockito モッキングフレームワーク