迎春2014

Spring4.0	
日本Springユーザ会	
1
発表者
	
•  長谷川 裕一
–  JSUG(日本Springユーザ会)会長
–  Starlight&Storm LLC 代表社員
•  Springに強い独立系のSI企業、フリーエン
ジニアとお知り合いになりたい

2
もくじ
	
•  社会的なハナシ
•  Spring4的なハナシ
•  現実的なハナシ	

3
社会的なハナシ	

4
JSUG(日本Springユーザ会)
	
•  最近は色々あって勉強会が開催されていない…
–  色々の内訳の幾つか
•  ネタが思いつかない(Projectが多すぎて、興味の範
囲が絞り切れない)
•  発表者がいない(主要スタッフが栄転)
– 募集中!
•  開催会場が確保できない。BEA、Oracle、VMwareか
らPivotal(EMC)!?

•  今後、Pivotalが積極的にユーザ会をバックアップ!?
–  シンガポールのユーザ会に、日本の流行ネタを提供

5
Spring.io
	

6
Pivotal
	
•  EMCとVMware、GEの出資
–  EMC傘下のPivotal Labs(アジャイル開発サービス企業
)+ VMwareの製品(Spring、Gemfire、SQLfire、
RabbitMQ、Cloud Foundry...etc)

•  Paul Maritz(CEO)
–  Rod JohnsonはSpringSource(VMware)を去って
Typesafeへ。Twitterでは@SpringRod!?

•  Pivotal One
–  2013/12/12 正式リリース

•  今後に期待!
7
Spring4的なハナシ	

8
Springの歴史
	
• 
• 
• 
• 
• 
• 
• 

2004/3 Spring1.0 DIxAOP登場
2005/5 Spring1.5 DTDからXMLスキーマへ
2006/10 Spring2.0 アノテーション登場、JPA...etc
2007/11 Spring2.5 更なるアノテーション強化
2009/12 Spring3.0 もっとアノテーション強化
2011/11 Spring3.1 クラウドを意識し始める
2013/12 Spring4.0 今日ここ!

9
Spring4.0
	
•  2013/12/12 リリース
–  Spring3(2009)以来のメジャーバージョンアップ
–  Java6以上必要

•  主な追加機能
–  Java 8のサポート	
–  WebSocketの実装	
–  Java EE 7 関連

•  主な削除機能
–  Struts API(org.springframework.web.struts)
–  iBatis API(org.springframework.orm.ibatis)	
10
ワンポイント:Java8のサポート
	
•  lambda
–  SpringはTemplateを良く使うので役に立つ!?
•  Spring JDBCとか…
jdbcTemplate.query("SELECT * FROM person WHERE dep = ?",
	
ps -> ps.setString(1, "Sales"),	
(rs, rowNum) -> new Person(rs.getString(1), rs.getString(2)));	

11
ワンポイント: WebSockeの実装
	
•  概要
–  HTML5からのスピンアウト
•  JavaEE7 WebSocketの採用(JSR-356)
–  クライアント/サーバ間で双方向の全二重通信で高パフォーマンス
–  真実のMVC

•  Spring
–  org.springframework.web.socketパッケージ
•  TextWebSocketHandler :文字列を扱う場合
•  BinaryWebSocketHandler :文字列以外を扱う場合
–  SockJSの提供
•  古いブラウザでWebSocketを利用する場合

•  試す
–  Tomcat7.0.47以上、GlassFish4.0以上、Jetty9.0以上
12
ワンポイント: Java EE 7 関連
	
•  JTA1.2
–  javax.transaction.Transactionalが利用可能

•  Bean Validation(JSR-349)
–  メソッドの引数と戻り値、コンストラクタの引数でValidation
可能
@NotNull	
@Valid	
public Employee getEmployee(@NotNull String id) {//...}	
–  メッセージ内でEL式の利用が可能

13
参考にどうぞ
	
•  Spring4
–  正しいスライド
•  http://www.slideshare.net/ZeroTurnaround/juergenhoellerspring4onjava8-24613140
–  サンプルコード
•  https://github.com/olivergierke/spring4-guided-tour

•  Springを試すなら
–  STS
•  http://spring.io/tools	

14
現実的なハナシ	

15
Springの実際
	
•  案件増えてます
–  人が足りません
•  SpringのProjectの達人
•  オブジェクト指向やアーキテクチャが分かってる人

•  企業のFramework(JSUGで過去に発表したもの)
–  NTTデータ
–  日本ユニシス
–  CSK(発表当時。現在SCSK)
–  日本アクセンチュア	

16
今そこにある問題
	
•  現在は、DIxAOPとかレイヤ構成は当たり前
–  でも、設計とかイマイチ…
–  モデリングとかもサッパリ…

•  Projectの選択と組合せも問題
–  Project多すぎ
–  そもそも、そのProjectは実績あるの?
–  そして、使いこなせる人は?

17
Projects
	

18
JSUGで作る予定!?
	
プレゼン層のテキトーな例	

Strutsが大好き

No	

独立した単体の
画面を作成する

画面ごとにアク
セス制限を設定
する

SpringMVC
+
Security

SpringMVC
YES	

Good
Bye	

ウィザード形式
等の複数画面で
構成される機能
を作成する

画面ごとにアク
セス制限を設定
する

Web Flow
+
Security

Web Flow

19
ご清聴ありがとうございました	

20
ライセンスについて	
• 

JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生
作品)の複製・頒布・表示・上演を認めます。	

• 

非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 	

• 

本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。 	

21

Spring4-DevLove発表資料