Submit Search
Upload
Spring I/O 2015 報告
•
Download as PPTX, PDF
•
6 likes
•
3,199 views
Takuya Iwatsuka
Follow
2015/06/22 にJSUGのイベントでの発表に使用した資料です.
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 63
Download now
Recommended
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用
Takuya Iwatsuka
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Takuya Iwatsuka
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Takuya Iwatsuka
Spring social の基礎
Spring social の基礎
Takuya Iwatsuka
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
Spring 12年の歴史
Spring 12年の歴史
movmov
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
Takuya Iwatsuka
Recommended
SpringOne 2016 報告 Reactive APIの設計・実装・使用
SpringOne 2016 報告 Reactive APIの設計・実装・使用
Takuya Iwatsuka
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Takuya Iwatsuka
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Spring I/O 2017 報告 ThymeleafのWebFlux対応
Takuya Iwatsuka
Spring social の基礎
Spring social の基礎
Takuya Iwatsuka
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
Spring 12年の歴史
Spring 12年の歴史
movmov
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
Takuya Iwatsuka
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
Spring知っておきたい
Spring知っておきたい
Yuichi Hasegawa
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
土岐 孝平
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
NTT DATA OSS Professional Services
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
Yahoo!デベロッパーネットワーク
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Toshiaki Maki
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo!デベロッパーネットワーク
Yapc fukuoka crust
Yapc fukuoka crust
Tokuhiro Matsuno
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能
正和 井岡
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
kimulla
試験にでるSpring
試験にでるSpring
土岐 孝平
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
recotech
第6回zabbix jp勉強会資料
第6回zabbix jp勉強会資料
Daisuke Ikeda
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめ
kinunori
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
VirtualTech Japan Inc.
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
Toshikazu Ichikawa
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
More Related Content
What's hot
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Keisuke Imai
Spring知っておきたい
Spring知っておきたい
Yuichi Hasegawa
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo!デベロッパーネットワーク
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
土岐 孝平
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
NTT DATA OSS Professional Services
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
Yahoo!デベロッパーネットワーク
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Toshiaki Maki
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo!デベロッパーネットワーク
Yapc fukuoka crust
Yapc fukuoka crust
Tokuhiro Matsuno
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能
正和 井岡
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
kimulla
試験にでるSpring
試験にでるSpring
土岐 孝平
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
recotech
第6回zabbix jp勉強会資料
第6回zabbix jp勉強会資料
Daisuke Ikeda
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめ
kinunori
What's hot
(19)
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Riot.jsを用いたweb開発 takusuta tech conf #1
Riot.jsを用いたweb開発 takusuta tech conf #1
Spring知っておきたい
Spring知っておきたい
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
ニュースアプリで起きた不具合から学んだ 最適への一歩
ニュースアプリで起きた不具合から学んだ 最適への一歩
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yapc fukuoka crust
Yapc fukuoka crust
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
試験にでるSpring
試験にでるSpring
Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
第6回zabbix jp勉強会資料
第6回zabbix jp勉強会資料
テスト駆動で行うネットワーク自動化のすすめ
テスト駆動で行うネットワーク自動化のすすめ
Similar to Spring I/O 2015 報告
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
VirtualTech Japan Inc.
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
Toshikazu Ichikawa
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
satsuki fukazu
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
Kengo Okitsu
20170705 apiをつくろう
20170705 apiをつくろう
CData Software Japan
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
TIS Inc.
Angularreflex20141210
Angularreflex20141210
Shinichiro Takezaki
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
NTT Software Innovation Center
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Shinichiro Arai
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
Satoshi Takano
Spring I/O 2018 報告会
Spring I/O 2018 報告会
NTT Software Innovation Center
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Takuya Iwatsuka
Spring tools4
Spring tools4
Takuya Iwatsuka
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
EMC Japan
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
クラウドセキュリティ基礎
クラウドセキュリティ基礎
Masahiro NAKAYAMA
OSSではじめるオープン・スタンダードのクラウド @201304
OSSではじめるオープン・スタンダードのクラウド @201304
Shinichiro Arai
Similar to Spring I/O 2015 報告
(20)
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
Yahoo!Japan北米DCでOCPのツボをみせてもらってきました - OpenStack最新情報セミナー 2016年5月
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
OpenStack Vancouver Summit Report presented at nttgroup meeting in Japanese
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
20170705 apiをつくろう
20170705 apiをつくろう
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Angularreflex20141210
Angularreflex20141210
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
Cloud Days Tokyo 2015 "オンプレミス環境のクラウド化と運用を楽にする OpenStack ソリューション ~ハイブリッド・クラウドを...
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
Spring I/O 2018 報告会
Spring I/O 2018 報告会
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring tools4
Spring tools4
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
Pivotal Cloud FoundryによるDevOpsとアジャイル開発の推進
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
クラウドセキュリティ基礎
クラウドセキュリティ基礎
OSSではじめるオープン・スタンダードのクラウド @201304
OSSではじめるオープン・スタンダードのクラウド @201304
Spring I/O 2015 報告
1.
Copyright©2015 NTT corp.
All Rights Reserved. Spring I/O 2015 報告 2015年6月22日 @ Spring I/O 2015 報告会 岩塚 卓弥 ソフトウェア革新技術プロジェクト NTT ソフトウェアイノベーションセンタ
2.
2Copyright©2015 NTT corp.
All Rights Reserved. • 名前:岩塚 卓弥 • 所属:NTT ソフトウェアイノベーションセンタ • 研究分野:ソフトウェア工学 • ソフトウェア開発の生産性向上を目指す取り組みの一つとし て、APフレームワークの整備に取り組む • その他: • 名古屋出身 • プログラミング言語/ソフトウェアの形式的検証技術 に関心 • Spring については newbie なのでお手柔らかに! 自己紹介
3.
3Copyright©2015 NTT corp.
All Rights Reserved. Spring 編
4.
4Copyright©2015 NTT corp.
All Rights Reserved. • Core Container の改善 → Modern Java Component Design with Spring Framework 4.2 • データアクセス の改善 • JMS の改善 • Web の改善 → Spring4 Web Apps • WebSocketメッセージング の改善 → Real-time with Spring: SSE and WebSockets • テスト の改善 → Testing with Spring 4.x Spring 4.2 の新機能と改善 From https://docs.spring.io/spring-framework/docs/4.2.x/spring-framework-reference/htmlsingle/#new-in-4.2
5.
5Copyright©2015 NTT corp.
All Rights Reserved. WEB の改善 SPRING 4.2編
6.
6Copyright©2015 NTT corp.
All Rights Reserved. •HTTPストリーミング と SSE •CompletableFuture のサポート •CORS のビルトインサポート •HTTPキャッシュの改善 •JavaScript View テンプレート Webの改善
7.
7Copyright©2015 NTT corp.
All Rights Reserved. • カスタム@RequestMapping • Request Mapping の実行時制御 • RequestBodyAdvice • @ExceptionHandler の引数に HandlerMethod • HttpHeaders の Byte-range リクエストのサポート • UriTemplateHandler • MvcUriComponentsBuilder の改善 Webの改善
8.
8Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング と SSE Web の改善
9.
9Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング と SSE サーバからクライアントにイベントをPUSH HTTPリクエスト:イベント が 1:多
10.
10Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング と SSE サーバからクライアントにイベントをPUSH HTTPリクエスト:イベント が 1:多 HTTPリクエスト
11.
11Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング と SSE サーバからクライアントにイベントをPUSH HTTPリクエスト:イベント が 1:多 HTTPリクエスト HTTPレスポンス
12.
12Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング と SSE サーバからクライアントにイベントをPUSH HTTPリクエスト:イベント が 1:多 HTTPリクエスト PUSH(Event1) Event1 HTTPレスポンス
13.
13Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング と SSE サーバからクライアントにイベントをPUSH HTTPリクエスト:イベント が 1:多 HTTPリクエスト Event1 Event2 PUSH(Event2) HTTPレスポンス
14.
14Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング と SSE サーバからクライアントにイベントをPUSH HTTPリクエスト:イベント が 1:多 … HTTPリクエスト Event1 Event2 … HTTPレスポンス
15.
15Copyright©2015 NTT corp.
All Rights Reserved. HTTPストリーミング の使い方 ResponseBodyEmitter を作成 イベントをPUSH 何度もPUSH やめる 作成した emitter を返す その後、別のスレッドで…
16.
16Copyright©2015 NTT corp.
All Rights Reserved. • SSE(Server-Sent Events) • W3C勧告 • PUSHされるイベントのフォーマットが定められている SSE の使い方 ResponseBodyEmitter の代わりに SseEmitter を作成 SSEのフォーマットイベントをPUSH
17.
17Copyright©2015 NTT corp.
All Rights Reserved. • IEはSSE未対応 • 以下のような用途には向かない • オンラインゲーム • コレボレーションツール • 金融アプリケーション 注意点 これらの場合にはWebSocketの使用を検討
18.
18Copyright©2015 NTT corp.
All Rights Reserved. CompletableFuture のサポート Web の改善
19.
19Copyright©2015 NTT corp.
All Rights Reserved. Java8で導入された非同期処理用のクラス 豊富な機能を持つ • コールバック指定 • タイムアウトの設定 • 実行の中断 • 複数の並行処理の同期 等 CompletableFuture
20.
20Copyright©2015 NTT corp.
All Rights Reserved. DeferredResult と CompletableFuture DeferredResult CompletableFuture isSetOrExpired isDone onCompletion whenComplete onTimeout exceptionally setResult complete setErrorResult completeExceptionally DeferredReslut でできることは だいたいCompletableFutureでもできる
21.
21Copyright©2015 NTT corp.
All Rights Reserved. リクエストに対して非同期処理の結果を返す Before DeferredResultを返す その後、別のスレッドで…
22.
22Copyright©2015 NTT corp.
All Rights Reserved. リクエストに対して非同期処理の結果を返す After CompletableFutureを返す その後、別のスレッドで…
23.
23Copyright©2015 NTT corp.
All Rights Reserved. CORSのビルトインサポート Web の改善
24.
24Copyright©2015 NTT corp.
All Rights Reserved. • 同一オリジンポリシー • セキュリティのため、オリジンの異なるリソースへの AJAX等の通信を禁止 • CORS • 異なるオリジンへのリソースへ安全にアクセスするた めに定められた仕様 CORS(Cross Origin Resource Sharing) http://xxx.com:80 https://yyy.org:8080 HTMLを取得 AJAX等 ドメイン, ポート等 リクエスト オリジンA オリジンB オリジンC 選別する
25.
25Copyright©2015 NTT corp.
All Rights Reserved. CORSのサポート @CrossOrigin After Before サードパーティのライブラリ等を利用 @CrossOrigin でクラス/メソッド単位に設定 例:CORS Filter(http://software.dzhuvinov.com) web.xml で一括フィルタリング
26.
26Copyright©2015 NTT corp.
All Rights Reserved. • JavaConfig • XML 一括でフィルタリングしたいとき CorsRegistory にマッピングを追加 mvc:cors にマッピングを追加
27.
27Copyright©2015 NTT corp.
All Rights Reserved. HTTPキャッシュの改善 Web の改善
28.
28Copyright©2015 NTT corp.
All Rights Reserved. Cache-Control ヘッダ HTTPレスポンスのヘッダでコンテンツの キャッシュの扱いを指定する Cache-Control: no-store 例: キャッシュしない Cache-Control: max-age=3600, private キャッシュしたレスポンスは3600秒間有効 キャッシュを他のユーザと共有しない
29.
29Copyright©2015 NTT corp.
All Rights Reserved. Cache-Control の設定方法 Before WebContentInterceptor に設定 After 新しく追加された CacheControl ビルダを利用 プロパティをチェイン
30.
30Copyright©2015 NTT corp.
All Rights Reserved. JavaScript View テンプレート Web の改善
31.
31Copyright©2015 NTT corp.
All Rights Reserved. JavaScript View テンプレート JavaScriptのテンプレートエンジンをサーバ側で実行 1. 初期ページ読み込み速度の改善 → 特にリソースの限られたモバイル環境で影響大 2. クライアント/サーバ のコード共通化 → 最近流行りの Isomorphic JavaScript 3. SEO対策 → JavaScriptを解釈しないロボットでも コンテンツを取得できる
32.
32Copyright©2015 NTT corp.
All Rights Reserved. •Handlebars http://handlebarsjs.com/ •EJS http://www.embeddedjs.com/ •Mustache https://mustache.github.io/ •React https://facebook.github.io/react/ JavaScript View テンプレート
33.
33Copyright©2015 NTT corp.
All Rights Reserved. • Controller • テンプレート(Handlebars) 使い方 コンテンツの設定 “Page Title”に置換される
34.
34Copyright©2015 NTT corp.
All Rights Reserved. Configの書き方 ScriptTemplateViewResolver ScriptTemplateConfigurer JRuby, Jythonも (JSR223)
35.
35Copyright©2015 NTT corp.
All Rights Reserved. WEBSOCKETメッセージング の改善 SPRING 4.2編
36.
36Copyright©2015 NTT corp.
All Rights Reserved. • メッセージに対する@JsonViewのサポート • 接続ユーザ情報の取得 • サーバをまたがるUser Destinationの解決 • StompSubProtocolErrorHandler • グローバルな@MessageExceptionHandler • SimpleBrokerMessageHandler の改善 WebSocketメッセージングの改善
37.
37Copyright©2015 NTT corp.
All Rights Reserved. • STOMPクライアント over TCP/WebSocket • @SendTo, @SendToUser の改善 • 戻り値に ListenableFuture/CompletableFuture • XMLペイロードのメッセージ/オブジェクト変換 WebSocketメッセージングの改善
38.
38Copyright©2015 NTT corp.
All Rights Reserved. メッセージに対する @JsonViewのサポート WebSocketメッセージング の改善
39.
39Copyright©2015 NTT corp.
All Rights Reserved. • @MessageMapping と @SubscribeMapping の メソッドの戻り値に@JsonView が使用可能に • 今までは@ResponseBody でしか使えなかった → Webの機能への追従が進む メッセージに対する@JsonViewのサポート グループの指定 グループの指定 @JsonView(≧4.1)のおさらい
40.
40Copyright©2015 NTT corp.
All Rights Reserved. テストの改善 SPRING 4.2編
41.
41Copyright©2015 NTT corp.
All Rights Reserved. • SpringJUnit4ClassRunner からRuleへの置き換え • ContextCache • TestContext 周りの改善 • ReflectionTestUtils のstaticフィールドアクセス • @DirtiesContext の改善 • 組み込みDBの名前周りの改善 • AopTestUtils によるProxyのターゲットの取得 テストの改善
42.
42Copyright©2015 NTT corp.
All Rights Reserved. SpringJUnit4ClassRunner か らRuleへの置き換え テストの改善
43.
43Copyright©2015 NTT corp.
All Rights Reserved. • Springの機能をJUnitのテストケース内で使用できる ようにするテストランナー • テストケース内でDIしたいときなどに用いる SpringJUnit4ClassRunner テストランナーはひとつしか指定できない
44.
44Copyright©2015 NTT corp.
All Rights Reserved. 別のテストランナーと併用したいとき Before @BeforeメソッドでTestContextManagerを作成 任意のテストランナー TestContextManager
45.
45Copyright©2015 NTT corp.
All Rights Reserved. 別のテストランナーと併用したいとき After @Ruleと@ClassRuleを使う 必ず二つとも記述すること 任意のテストランナー
46.
46Copyright©2015 NTT corp.
All Rights Reserved. セッション紹介編
47.
47Copyright©2015 NTT corp.
All Rights Reserved. タイトル カテゴリ Building “Bootful” Applications with Spring Boot Boot Building Microservices with Spring Cloud and Netflix OSS Cloud Developing and Maintaining Spring-based Enterprise Software: Lessons Learned 事例 Static Resources Management with Spring and Single Page Applications Web Inside http://spring.io - a production spring reference application 事例 Real-time with Spring: SSE and WebSockets Web Testing with Spring 4.x Test Performance Testing Crash Course その他 Everything you need to know about Java Classloaders その他 Scaling real time search and analytics with Elasticsearch その他 Improving your (legacy) Application with Spring その他 紹介セッション一覧
48.
48Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Josh Long • デモを交えながらSpring Bootを紹介 • Spring Project Initializer • Web上のインタフェースでプロジェクト雛形を作成 • CommandLineRunner • コマンドライン引数を与えて実行 • REST • ビューにはThymeleafを使用 • Spring Boot Actuator • アプリケーションのモニタリング • 他のセッションでもBootは当たり前のように使用 Building “Bootful” Applications with Spring Boot
49.
49Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Dave Syer • マイクロサービスの協調動作のためのボイラープレート に Spring Cloud × Netflix OSS を利用 • 設定の管理 • サービス探索 • ロードバランサ • 耐障害性 • … Building Microservices with Spring Cloud and Netflix OSS
50.
50Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Dave Syer • マイクロサービスの協調動作のためのボイラープレート に Spring Cloud × Netflix OSS を利用 Building Microservices with Spring Cloud and Netflix OSS
51.
51Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Dave Syer • マイクロサービスの協調動作のためのボイラープレート に Spring Cloud × Netflix OSS を利用 Building Microservices with Spring Cloud and Netflix OSS Histrix Ribbon Eureka Zuul 設定用のアノテーションを提供 e.g. @EnableEurekaClient, @HystrixCommand http://cloud.spring.io/spring-cloud-netflix/
52.
52Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Mortiz Kleine • ドイツのCMSベンダによるSpring利用時のノウハウ • XMLで設定し、自作のContextInitializerで読み込む • https://gihub.com/mkleine/spring-component-loader • カスタマイズしたXmlBeanDefinitionReaderを使用 • 複数の設定ファイルで同一リソースをインポート する際の冗長なロードの問題(SPR-1142)を避ける • 複雑になるのでAOPは使わない Developing and Maintaining Spring-based Enterprise Software: Lessons Learned
53.
53Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Brian Clozel@ • 静的リソースの扱いについてのワークショップ • < 4.1 (ワークショップ1) • 任意の場所にリソースを配置 • Cache-Control によるキャッシュ管理 Static Resources Management with Spring and Single Page Applications(Workshop) https://github.com/bclozel/resource-handling-workshop
54.
54Copyright©2015 NTT corp.
All Rights Reserved. • ≧ 4.1 (ワークショップ2[AngularJS], 3[ES6]) • Webjarのビルド • リソースを target/classes/static に配置 • 開発時はプロファイルを切り替えローカルファイル を参照 • fingerprintingによるキャッシュ • ファイル名ベースのバージョニング • Minify等はクライアントサイドのツールを使う • 講演者:Brian Clozel@ • 静的リソースの扱いについてのワークショップ Static Resources Management with Spring and Single Page Applications(Workshop) https://github.com/bclozel/resource-handling-workshop
55.
55Copyright©2015 NTT corp.
All Rights Reserved. • 講演者: Brian Clozel • Springの公式サイト(http://spring.io)自体のプロ ジェクト(Sagan)について • クライアントサイドリソースの管理 • Spring Bootの利用 • Java8(lambda, stream)によるリファクタリング • Spring IO Platformへの移行 • HipChatを利用したコミュニケーション • Blue/Greenデプロイメント Inside http://spring.io - a production spring reference application
56.
56Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Sergi Almar • SpringにおけるSSE, WebSocket の利用法を紹介 • SSE, WebSocket についての解説 • Spring 4.2におけるSSEの利用法 • 本日解説済み! • Spring のWebSocket と JSR-356 の違い • SockJS によるフォールバック • STOMP のサポート • セキュリティ Real-time with Spring: SSE and WebSockets
57.
57Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:San Brannen • Spring4.0, 4.1のテスト関連機能の紹介 • Spring4.2で導入される機能の紹介 • 本日解説しなかった内容 • @DirtiesContext にbefore method, before classを 追加 • 組み込みデータベースに対する固有名の生成 • <jdbc:embedded-database />に database-name 属性を 追加 • ReflectionTestUtilsでstaticなフィールドにアクセス Testing with Spring 4.x
58.
58Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Dustin Whittle • 多数のアプリケーションの性能試験ツール/サービスの 紹介 • 汎用 • Apache Bench • Seige • Apache JMeter • Multi-Mechanize • クラウド/分散環境 • Bees with Machine Guns • locust.io • クライアントサイド • Google PageSpeed • WBench Performance Testing Crash Course ・パフォーマンストラッキング ・Statsd + Graphite + Grafana ・webpagetest.org ・SiteSpeed.io ・APP DYNAMICS ・Load testing ・Apica ・BLITZ ・BlazeMeter とにかく沢山紹介
59.
59Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Oleg Selajev • クラスローダの基本動作とエラー発生時の対処 • 詳細は割愛 Everything you need to know about Java Classloaders NoClassDefFoundError NoSuchMethodError 等
60.
60Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Clinton Gormley • Elasticsearch の動作とスケールアウトの仕組み • 詳細は割愛 Scaling real time search and analytics with Elasticsearch
61.
61Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Marten Deinum • モノリシックな古いSpringアプリケーションをリ ファクタリングするデモ • Spring 2.0.8 → 3.2.13へのアップグレード • SimpleFormControllerへの置き換え • テストケースを書く • サービスを機能で分割し,パッケージも分ける • Eventを使って結合を疎に • 分割したサービスを独立したアプリケーションに • Bootを使う • Controllerをリファクタリング • @Controllerと@RequestMappingに書き換える Improving your (legacy) Application with Spring
62.
62Copyright©2015 NTT corp.
All Rights Reserved. • 講演者:Marten Deinum • モノリシックな古いSpringアプリケーションをリ ファクタリングするデモ • Spring 2.0.8 → 3.2.13へのアップグレード • SimpleFormControllerへの置き換え • テストケースを書く • サービスを機能で分割し,パッケージも分ける • Eventを使って結合を疎に • 分割したサービスを独立したアプリケーションに • Bootを使う • Controllerをリファクタリング • @Controllerと@RequestMappingに書き換える Improving your (legacy) Application with Spring 密結合,大規模 → 疎結合,小規模 適切な手順を踏めばアップグレードは怖くない!
63.
63Copyright©2015 NTT corp.
All Rights Reserved. http://www.springio.net リファレンス スライドへのリンク
Download now