6 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
コンセプト (1)
●
スタンドアロン Java アプリケーション
●
Web アプリだけで無く、コマンドラインアプリも作れる
●
組む込みサーブレットコンテナ
●
java -jar app.jar で Web アプリが起動できる
●
war を Tomcat 等にデプロイすることもできる
●
starter POM
●
あとで説明します
7.
7 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
コンセプト (2)
●
自動設定
●
ほとんど全ての設定にデフォルト値が提供される
●
production-ready な機能の提供
●
メトリクス、ヘルスチェック、外部設定
●
コード生成や XML 設定ファイルは不要
●
Spring Roo や Spring 2.x 時代の反省?
8.
8 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
Spring Initializr
●
typo じゃないよ
●
Spring Boot 向けの雛形生成ツール
●
https://start.spring.io
9.
9 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
ディレクトリ構成
アプリケーションメイン
静的ファイルディレクトリ
JUnit テストケース
設定ファイル
テンプレートファイルディレクトリ
Maven 定義ファイル
10.
10 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
コントローラ (1)
●
spring-boot-starter-web
●
Spring MVC + Tomcat
●
spring-boot-starter-data-rest
●
Repository(DAO) から REST API を生成
●
コントローラ定義無しで CRUD 機能が作れちゃう
●
ページネーションやソート機能も有り
●
Spring Security によるアクセス制御も可能
11.
11 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
コントローラ (2)
●
spring-boot-starter-websocket
●
spring-boot-starter-web-services
●
spring-boot-starter-webflux
●
Reactive web フレームワーク
●
Spring Boot 2.0 以降でサポート
●
現状は MVC と排他
12.
12 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
Spring MVC のコントローラ例
@Controller
public class HelloWorldController {
@RequestMapping("/helloWorld")
@ResponseBody
public String helloWorld(Model model) {
return "helloWorld";
}
}
13.
13 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
テンプレートエンジン
●
spring-boot-starter-freemarker
●
spring-boot-starter-groovy-templates
●
spring-boot-starter-thymeleaf
●
spring-boot-starter-mustache
●
JSP
14.
14 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
RDB アクセス /ORM
●
spring-boot-starter-data-jpa
●
spring-boot-starter-jdbc
●
spring-boot-starter-jooq
●
mybatis-spring-boot-starter
15.
15 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
その他の starter
●
Spring Security ( 認許・認可 )
●
NoSQL 関連
●
クラウド関連
●
DevTools ( 開発用ツール )
●
Actuator ( メトリクス、ヘルスチェック )
16.
16 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
デプロイと起動
●
ビルドして jar/war ファイルを作成
●
ライブラリ等が1つのファイルにパッケージングされる
●
実態はただの zip ファイル
●
executable jar 形式
●
java -jar app.jar -Dspring.profiles.active=production
●
fully executable jar 形式
●
init.d や systemd にそのまま登録可能
●
jar の先頭に bash スクリプトが埋め込まれている
17.
17 Web フレームワーク品評会 Spring Boot 概要 2017/09/16
まとめ
●
後発フレームワークなので良いとこ取り
●
Java なら Spring Boot 使っとけ(個人の意見です)