/spring-boot-doma2-sample

Primary LanguageJavaApache License 2.0Apache-2.0

Spring Boot Sample Application

Build Status Documentation Status Job Status

ローカル環境

ソースのダウンロード

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

開発環境(IntelliJ)

必要なプラグイン・設定

  • Lombok pluginをインストールする。
    • Settings > Build, Excecution, Deployment > Compiler > Annotation Processor > Enable Annotation ProcessingをONにする。
  • Eclipse Code Formatterをインストールする。
    • Settings > Other Settings > Eclipse Code Formatter > Use the Eclipse code formatterをONにする。
      • Eclipse Java Formatter config fileeclipse-formatter.xmlを指定する。
  • bootRunを実行している場合でもビルドされるようにする。
    • Intellij > Ctrl+Shift+A > type Registry... > compiler.automake.allow.when.app.runningをONにする。
  • Windowsの場合は、コンソール出力が文字化けするため、C:¥Program Files¥JetBrains¥IntelliJ Idea xx.x.x¥binの中にあるidea64.exe.vmoptionsファイルに-Dfile.encoding=UTF-8を追記する。
  • ブラウザにLiveReload機能拡張をインストールする。
    • http://livereload.com/extensions/から各ブラウザの機能拡張をダウンロードする。

Docker APIの有効化

Windows10の場合

  • Settings > General > Expose daemon on tcp://...をONにする。

MacOSXの場合

  • デフォルトでunix:///var/run/docker.sockに接続できる。
  • TCPでAPIを利用したい場合は、下記を実施する。
$ brew install socat
$ socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock &

Docker Toolboxの場合

  • 後述のDockerの起動の手順を実施する。

Dockerの起動

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

Windows10、MacOSXの場合

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

Docker Toolboxの場合

  • application-development.ymlを編集する。
    • spring.datasource.url127.0.0.1:3306192.168.99.100:3306に変更する。
  • Docker CLIでdocker-composeを実行する。
$ cd /path/to/spring-boot-doma2-sample/docker
$ docker-compose up

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"

接続先情報

テストユーザー 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]

その他

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 モッキングフレームワーク