ソースのダウンロード
$ git clone https://github.com/miyabayt/spring-boot-doma2-sample.git
- Lombok pluginをインストールする。
- Settings > Build, Excecution, Deployment > Compiler > Annotation Processor >
Enable Annotation Processing
をONにする。
- Settings > Build, Excecution, Deployment > Compiler > Annotation Processor >
- Eclipse Code Formatterをインストールする。
- Settings > Other Settings > Eclipse Code Formatter >
Use the Eclipse code formatter
をONにする。Eclipse Java Formatter config file
にeclipse-formatter.xml
を指定する。
- Settings > Other Settings > Eclipse Code Formatter >
- bootRunを実行している場合でもビルドされるようにする。
- Intellij > Ctrl+Shift+A > type Registry... >
compiler.automake.allow.when.app.running
をONにする。
- Intellij > Ctrl+Shift+A > type Registry... >
- Windowsの場合は、コンソール出力が文字化けするため、
C:¥Program Files¥JetBrains¥IntelliJ Idea xx.x.x¥bin
の中にあるidea64.exe.vmoptions
ファイルに-Dfile.encoding=UTF-8
を追記する。 - ブラウザにLiveReload機能拡張をインストールする。
http://livereload.com/extensions/
から各ブラウザの機能拡張をダウンロードする。
- Settings > General >
Expose daemon on tcp://...
をONにする。
- デフォルトで
unix:///var/run/docker.sock
に接続できる。 - TCPでAPIを利用したい場合は、下記を実施する。
$ brew install socat
$ socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock &
- 後述の
Dockerの起動
の手順を実施する。
MySQLなどのサーバーを立ち上げる。
$ cd /path/to/spring-boot-doma2-sample
$ ./gradlew composeUp
application-development.yml
を編集する。spring.datasource.url
の127.0.0.1:3306
を192.168.99.100:3306
に変更する。
Docker CLI
でdocker-composeを実行する。
$ cd /path/to/spring-boot-doma2-sample/docker
$ docker-compose up
メール送信のテストのため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"
テストユーザー test@sample.com / passw0rd
接続先 | URL |
---|---|
管理側画面 | http://localhost:18081/admin |
管理側API | http://localhost:18081/admin/api/v1/users.json |
フロント側 | 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]
自動テスト実行時に以下のように表示されて実行できない場合があります
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 | モッキングフレームワーク |