Address
:
[go:
up one dir
,
main page
]
Include Form
Remove Scripts
Accept Cookies
Show Images
Show Referer
Rotate13
Base64
Strip Meta
Strip Title
Session Cookies
More Web Proxy on the site http://driver.im/
Submit Search
さくっと理解するSpring bootの仕組み
•
Download as PPTX, PDF
•
41 likes
•
66,021 views
T
Takeshi Ogawa
Follow
【東京】JJUG ナイト・セミナー 「入門Spring Boot&Spring Cloud」 1/23(月)、JSUG共催
Read less
Read more
1 of 38
Download now
Downloaded 158 times
More Related Content
さくっと理解するSpring bootの仕組み
1.
さくっと理解する Spring Boot のしくみ JJUG
ナイトセミナー 2017.1.23 株式会社タグバンガーズ 小川岳史
2.
• 株式会社タグバンガーズ • JSUG
スタッフ • Spring Lover (10 years) • Spring I/O, Spring One 参加 • WallRide (OSS) • From 横浜 • TagBar 自己紹介 1
3.
Spring と Spring
Boot の関係 Spring Boot が改善する開発プロセス Spring Boot の構成要素 今日話すこと 2
4.
Spring と Spring
Boot の関係 3
5.
そもそも Spring ってなに? 4 次のセッションで話します Spring
≒ Spring Framework DIコンテナの機能を含む コアプロジェクト 今回話すプロジェクト
6.
• ざっくりいえば・・ Spring と
Spring Boot の関係 5 Spring から 面倒な設定を排除し Tomcatを追加したもの が・・ Spring Boot Spring CONFIG
7.
Spring Boot が改善する 開発プロセス 6
8.
一般的な開発のプロセス 7 1. 必要なライブラリのリストアップ 5. モニタリング 2.
起動に必要な Bean の定義をする 3. プログラミング 4. パッケージング・デプロイ
9.
1. 必要なライブラリをリストアップ 8 <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.3.4.Final</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.6</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>2.0.0.BUILD-SNAPSHOT</version> </dependency> </dependencies> Before 記述量が減る バージョンの互換性を気にしなくてよい <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> After
10.
2.起動に必要な Bean の定義をする 9 spring-boot-starter-xxx Starters 自分でBean定義 Container 自動で
Bean を定義してくれる AutoConfigure
11.
3. プログラミング 10 Tomcat 内包 生産性が上がる
12.
4. パッケージング・デプロイ 11 $ ./app.jar Fully
Executable jar
13.
5. モニタリング 12 After エンドポイントの自動配備
14.
Spring Boot のしくみ 13
15.
Spring Boot の構成要素 14 CLI Starter Actuator Auto-configure Tools 起動が楽になる Core ライブラリ同士の バージョン互換を 解決 自動でBeanを 準備してくれる アプリの モニタリング ひな形を CLI
ベースで 作れる Test 開発効率を 上げる 便利ツール JUnit の ユーティリティ
16.
Core 起動が簡単に! 15 CLI Starter Actuator Auto-configure Tools Core Test
17.
Tomcatが内包されている 16 Starter Jetty, Undertow に置き換えできる Tomcat
7 から組み込み版が対応 → Spring Boot がこれを組み込みした CLI Actuator Auto-configure Tools Test 起動が 楽になる Core
18.
• バイナリ1+コマンド1発で起動したい • が、Java
はネストした jar を用意していない • よくある対応策 … uber jar (fat jar) • jar の中のコンテンツを全て展開してもう一度まとめる • 問題点 • どのコンテンツがどのものかわからない • jar 内のコンテンツ名前がかぶる可能性がある • Spring Boot が作成する jar … Nested jar • uber jar (fat jar) ではない • 特殊なローダーに内包することでネストした jar を作っている Fully Executable Jar 17 Starter CLI Actuator Auto-configure Tools Test 起動が 楽になる Core
19.
Executableにするには設定が必要 Maven Fully Executable Jar
2 18 Starter CLI Actuator Auto-configure Tools Test 起動が 楽になる Core <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> springBoot { executable = true } Gradle
20.
Starters ライブラリ同士のバージョン互換 を解決 19 CLI Starter Actuator Auto-configure Tools 起動が楽になる Core 自動でBeanを 準備してくれる アプリの モニタリング ひな形を CLI ベースで 作れる Test 開発効率を 上げる 便利ツール jUnit の ユーティリティ
21.
• 実態はpomしかない • 自分で
Starterをつくれる Starters の実態 20 Starter CLI Actuator Auto-configure Tools Test Core pom の 記述が減る
22.
Auto-configure 自動でBeanを準備してくれる 21 CLI Starter Actuator Auto- configure Tools 起動が楽になる Core アプリの モニタリング ひな形を CLI ベースで 作れる Test 開発効率を 上げる 便利ツール jUnit の ユーティリティ
23.
進化した設定の簡易化 - xml 22 Starter CLI Actuator Auto-configure Tools Test 自動で Beanを 準備 Core
24.
進化した設定の簡易化 - annotation 23 Starter CLI Actuator Auto-configure Tools Test 自動で Beanを 準備 Core
25.
進化した設定の簡易化 – Boot 24 Starter CLI Actuator Auto-configure Tools Test 自動で Beanを 準備 Core
26.
@ConditionalOnClass /Bean 25 Starter CLI Actuator Auto-configure Tools Test 自動で Beanを 準備 Core @ConditionalOnClass @ConditionalOnMissingClass @ConditionalOnBean @ConditionalOnMissingBean 実行時ビルド時@Bean @Component Context に○○
Bean があれば ClassPath に○○クラスがあれば Context に○○Bean がなければ ClassPath に○○クラスがなければ Starters spring-boot-starter-xxx
27.
Actuator アプリのモニタリング 26
28.
• Cloud Nativeなアプリを作るときに、 Cloudがアプリのことを知るために必要な あるあるエンドポイント(ヘルスチェックや メトリックスなど)を自動的に用意してくれる •
Spring Cloudフレンドリ • CloudがActuatorのエンドポイント使ってる • Zool:reverse proxy • Actuatorの/route 使ってる Actuator が使われる場面 27 Starter CLI Actuator Auto-configure Tools Test Core アプリの モニタリング
29.
Tools 開発効率が上がるツール群 28 CLI Starter Actuator Auto-configure Tools Core Test
30.
• Automatic restart •
LiveReload • 開発時のためのデフォルトプロパティ Devtools 29 Starter CLI Actuator Auto-configure Test Core Tools お役立ち ツール群
31.
• Springの自動再起動 • 2つのクラスローダー •
再起動用 • よく変更するクラス • 非再起動用 • 外部Jarで読み込んでいる クラスファイルなど • vs JRebel や Spring Loaded • Tomcatの再起動ではない • DI コンテナ(=Spring)のリロード • よく変更するクラスファイルだけ再読込し 再起動 • →Tomcatのリスタートよりかは速い Automatic restart 30 spring tomcat jvm Starter CLI Actuator Auto-configure Tools Test Core 再起動用 クラスローダー 非再起動用 クラスローダー ここだけ再起動 通常起動する場合
32.
• 自動でリロードしてくれるブラウザの プラグインに対応 • 特定ポートに対してメッセージを送ってリロード •
Spring BootがLiveReloadに対応してる • ソースコード変更時に自分でリロードしなくても 勝手にリロードして表示してくれる LiveReload 31 Starter CLI Actuator Auto-configure Test Core Tools お役立ち ツール群
33.
• application.properties に 設定を手動で記載しなくても Spring
Boot Devtools がデフォルトで セットしてくれる • 例:開発時はデフォルトでキャッシュOFF 開発時のためのデフォルトプロパティ 32 Starter CLI Actuator Auto-configure Test Core Tools お役立ち ツール群
34.
• 地味にビルドを助けてくれるプラグイン • Mavenプラグイン •
mavenコマンドでSpring bootをキックできる • Gradleのプラグイン • Mavenでしかできない記述がかける • <Dependency management></> • <provided> 的なの Maven / Gradle Plugin 33 Starter CLI Actuator Auto-configure Test Core Tools お役立ち ツール群
35.
まとめ 34
36.
Spring Boot のはじめかた 35 IDE STS IDEA Eclipse ... Initializer start.spring.io Build tool Maven Starter
@SpringBoot Application jar Code Tomcat CLI Gradle
37.
• Spring Boot
は劇的な変化をもたらすというよりかちょっとし た改善の積み重ねで開発が楽になるもの • アイデアがグッド • クラウドサービスの登場によってエンタプライズ(ミッションク リティカル)だけじゃなくもっと幅広い層に使えるようになって きた • Java / Spring がもっと身近なものに。 • PHPのお手軽さ以上のものを手にいれた むすびに 36
38.
Thank you!
Editor's Notes
Spring と一言でいっても・・・ いくつものプロジェクトで成り立っている
Download