Spring Boot 概要
afnf (@af_not_found)
2017/09/16 Web フレームワーク品評会
2 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
Spring Boot とは
●
. みんな大好き Java のフレームワーク
●
Groovy/Kotlin も OK
●
Github star 数 : 15,925 (2017/9/15)
●
2014/4/3 に 1.0.0 リリース
●
53 回のリリースを経て現在 1.5.7
●
開発元は Dell EMC 傘下
●
Dell EMC → Pivotal → SpringSource
3 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
Spring Boot に至るまで
●
1999 ~ Servlet/JSP
●
2001 ~ Apache Struts 1.x
●
2005 ~ Spring MVC
●
2009 ~ Play Framework
●
2011 ~ Dropwizard
●
2014 ~ Spring Boot
4 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
Google Trend
5 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
Google Trend
6 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
コンセプト (1)
●
スタンドアロン Java アプリケーション
●
Web アプリだけで無く、コマンドラインアプリも作れる
●
組む込みサーブレットコンテナ
●
java -jar app.jar で Web アプリが起動できる
●
war を Tomcat 等にデプロイすることもできる
●
starter POM
●
あとで説明します
7 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
コンセプト (2)
●
自動設定
●
ほとんど全ての設定にデフォルト値が提供される
●
production-ready な機能の提供
●
メトリクス、ヘルスチェック、外部設定
●
コード生成や XML 設定ファイルは不要
●
Spring Roo や Spring 2.x 時代の反省?
8 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
Spring Initializr
●
typo じゃないよ
●
Spring Boot 向けの雛形生成ツール
●
https://start.spring.io
9 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
ディレクトリ構成
アプリケーションメイン
静的ファイルディレクトリ
JUnit テストケース
設定ファイル
テンプレートファイルディレクトリ
Maven 定義ファイル
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 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 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
Spring MVC のコントローラ例
@Controller
public class HelloWorldController {
@RequestMapping("/helloWorld")
@ResponseBody
public String helloWorld(Model model) {
return "helloWorld";
}
}
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 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 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
その他の starter
●
Spring Security ( 認許・認可 )
●
NoSQL 関連
●
クラウド関連
●
DevTools ( 開発用ツール )
●
Actuator ( メトリクス、ヘルスチェック )
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 Web フレームワーク品評会    Spring Boot 概要 2017/09/16
まとめ
●
後発フレームワークなので良いとこ取り
●
Java なら Spring Boot 使っとけ(個人の意見です)

Spring Boot概要

  • 1.
    Spring Boot 概要 afnf(@af_not_found) 2017/09/16 Web フレームワーク品評会
  • 2.
    2 Web フレームワーク品評会   Spring Boot 概要 2017/09/16 Spring Boot とは ● . みんな大好き Java のフレームワーク ● Groovy/Kotlin も OK ● Github star 数 : 15,925 (2017/9/15) ● 2014/4/3 に 1.0.0 リリース ● 53 回のリリースを経て現在 1.5.7 ● 開発元は Dell EMC 傘下 ● Dell EMC → Pivotal → SpringSource
  • 3.
    3 Web フレームワーク品評会   Spring Boot 概要 2017/09/16 Spring Boot に至るまで ● 1999 ~ Servlet/JSP ● 2001 ~ Apache Struts 1.x ● 2005 ~ Spring MVC ● 2009 ~ Play Framework ● 2011 ~ Dropwizard ● 2014 ~ Spring Boot
  • 4.
    4 Web フレームワーク品評会   Spring Boot 概要 2017/09/16 Google Trend
  • 5.
    5 Web フレームワーク品評会   Spring Boot 概要 2017/09/16 Google Trend
  • 6.
    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 使っとけ(個人の意見です)