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
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 にマッピングを追加
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
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
密結合,大規模 → 疎結合,小規模
適切な手順を踏めばアップグレードは怖くない!