SlideShare a Scribd company logo
1 of 26
1 
試験にでるSpring 
日本Springユーザ会 
土岐孝平
背景 
• システム開発会社が抱える問題 
– 中堅が育ってくれない・勉強してくれない 
• 目標がないと、勉強するとっかかりがない 
– Javaの技術者が多いが、Springに詳しい人が少ない 
• Springを勉強するための明確な目標が必要 
2 
Springの認定試験は無いのだろうか?
Springの認定試験 
• Certified Spring Professional 
【URL】 
http://mylearn.vmware.com/mgrReg/plan.cfm?plan=31110&ui=www_cert 
• Springの本家のPivotalが運営 
※ 本資料に掲載しているURLや、 
そのページの内容は今後変更予定です 
• 選択式で50問(38問以上正解で合格) 
– 英語で出題(日本でも受験できる) 
• 事前に研修の受講が必要 
3
出題範囲 
• コンテナの基礎 
– XML、アノテーション、 JavaConfig、ライフサイクル、テス 
ティング・・・ 
• AOP 
– Pointcuts、Advice、Proxy・・・ 
• データアクセス 
– Spring JDBC、Hibernate連携、トランザクション・・・ 
• Spring MVC 
– @Controller、@RequestMapping・・・ 
• その他 
– Remoting、Security、JMS、JMX 
4 
【スタディーガイド】 
http://mylearn.vmware.com/courseware/152239/ 
core-spring-3.0-certification-study-guide.pdf
サンプル問題 
5
6 
【問題】 
Springの説明として間違っているのはどれでしょう? 1つ選んでくださ 
い 
【選択肢】 
(A). Spring は、軽量な手段で企業向けアプリケーションのほとんどの 
ニーズを満たす機能をもつ 
(B). Springはモジュール化されており、必要なモジュールだけ使えばよ 
い 
(C). 業務ロジックのコードは基本的にSpringに依存せずに記述できる 
(D). 間違っているものはない。すべて正しい
7 
【問題】 
Springの説明として間違っているのはどれでしょう? 1つ選んでくださ 
い 
【選択肢】 
(A). Spring は、軽量な手段で企業向けアプリケーションのほとんどの 
ニーズを満たす機能をもつ 
(B). Springはモジュール化されており、必要なモジュールだけ使えばよ 
い 
(C). 業務ロジックのコードは基本的にSpringに依存せずに記述できる 
(D). 間違っているものはない。すべて正しい
8 
【問題】 
以下のコードと等しい記述はどれでしょう? 1つ選んでください 
@Configuration 
public class FooConfig { 
@Bean 
public FooService fooService() { 
return new FooServiceImpl(); 
} 
} 
【選択肢】 
(A). <bean id="fooConfig" class="com.foo.FooService"/> 
(B). <bean id="fooService" class="com.foo.FooServiceImpl"/> 
(C). <bean id="fooConfig" class="com.foo.FooServiceImpl"/> 
(D). 上記のいずれも該当しない。@Beanはname属性が必須である
9 
【問題】 
以下のコードと等しい記述はどれでしょう? 1つ選んでください 
@Configuration 
public class FooConfig { 
@Bean 
public FooService fooService() { 
return new FooServiceImpl(); 
} 
} 
【選択肢】 
(A). <bean id="fooConfig" class="com.foo.FooService"/> 
(B). <bean id="fooService" class="com.foo.FooServiceImpl"/> 
(C). <bean id="fooConfig" class="com.foo.FooServiceImpl"/> 
(D). 上記のいずれも該当しない。@Beanはname属性が必須である
【問題】 
Beanの生成時にメソッドを実行する3つの方法で、それぞれ別のメ 
ソッドを呼び出した場合、どの順番で実行されますか? 1つ選択してく 
ださい 
【選択肢】 
(A). 実行は不可能である。1つのBeanに1つの方法しか適用できない 
(B). @PostCounstruct が付与されたメソッド、init-method で指定された 
メソッド、InitializingBeanのafterPropertiesSetメソッド 
(C). InitializingBean のafterPropertiesSetメソッド、@PostCounstruct 
が付与されたメソッド、init-methodで指定されたメソッド 
(D). @PostCounstruct が付与されたメソッド、InitializingBean の 
afterPropertiesSet メソッド、init-methodで指定されたメソッド 
10
【問題】 
Beanの生成時にメソッドを実行する3つの方法で、それぞれ別のメ 
ソッドを呼び出した場合、どの順番で実行されますか? 1つ選択してく 
ださい 
【選択肢】 
(A). 実行は不可能である。1つのBeanに1つの方法しか適用できない 
(B). @PostCounstruct が付与されたメソッド、init-method で指定された 
メソッド、InitializingBeanのafterPropertiesSetメソッド 
(C). InitializingBean のafterPropertiesSetメソッド、@PostCounstruct 
が付与されたメソッド、init-methodで指定されたメソッド 
(D). @PostCounstruct が付与されたメソッド、InitializingBean の 
afterPropertiesSet メソッド、init-methodで指定されたメソッド 
11
12 
【問題】 
Join Pointをマッチングさせるための概念はどれですか? 1つ選択して 
ください 
【選択肢】 
(A). Aspect 
(B). Pointcut 
(C). Advice 
(D). Weaving
13 
【問題】 
Join Pointをマッチングさせるための概念はどれですか? 1つ選択して 
ください 
【選択肢】 
(A). Aspect 
(B). Pointcut 
(C). Advice 
(D). Weaving
14 
【問題】 
以下のPointcutの記述にマッチするメソッドはどれでしょう(複数 
可)? 
execution(* com.foo..*.*(*)) 
【選択肢】 
(A). void com.foo.MyServiceImpl クラスの 
transfert(Money amount)メソッド 
(B). void com.foo.MyServiceImpl クラスの 
transfert(Account account, Money amount) メソッド 
(C). void com.foo.account.MyServiceImpl クラスの 
transfert(Money amount)メソッド 
(D). void com.foo.account.MyServiceImpl クラスの 
transfert(Account account, Money amount) メソッド 
(E). いずれもマッチしない
15 
【問題】 
以下のPointcutの記述にマッチするメソッドはどれでしょう(複数 
可)? 
execution(* com.foo..*.*(*)) 
【選択肢】 
(A). void com.foo.MyServiceImpl クラスの 
transfert(Money amount)メソッド 
(B). void com.foo.MyServiceImpl クラスの 
transfert(Account account, Money amount) メソッド 
(C). void com.foo.account.MyServiceImpl クラスの 
transfert(Money amount)メソッド 
(D). void com.foo.account.MyServiceImpl クラスの 
transfert(Account account, Money amount) メソッド 
(E). いずれもマッチしない
【問題】 
Springのtestモジュールがサポートしている機能はどれでしょう? 1つ 
選択してください 
16 
【選択肢】 
(A). インテグレーションテストで有用となるトランザクション制御 
(B). テスト対象のオブジェクトのインジェクション 
(C). 複数のテストメソッドの実行でDIコンテナを共有 
(D). 上記すべて
【問題】 
Springのtestモジュールがサポートしている機能はどれでしょう? 1つ 
選択してください 
17 
【選択肢】 
(A). インテグレーションテストで有用となるトランザクション制御 
(B). テスト対象のオブジェクトのインジェクション 
(C). 複数のテストメソッドの実行でDIコンテナを共有 
(D). 上記すべて
【問題】 
@Transactionalアノテーションが有効で、transferMoneyメソッドが 
Spring AOP Proxyを通して呼び出された際どのような挙動となるでしょ 
う? 1つ選択してください 
@Transactional(propagation=Propagation.REQUIRED) 
public void transferMoney(Account src, Account target, Double amount) { 
add(src, -amount); 
add(target, amount); 
} 
@Transactional(propagation=Propagation.REQUIRES_NEW) 
public void add(Account account, Double amount) { 
// 何かしらの処理 
} 
【選択肢】 
(A). addメソッドの処理は新しいトランザクションの中で行われる 
(B). addメソッドの処理はtransferMoneyメソッドのトランザクション 
の中で行われる 
(C). addメソッドが呼ばれると例外が発生する 
(D). 上記以外 
18
【問題】 
@Transactionalアノテーションが有効で、transferMoneyメソッドが 
Spring AOP Proxyを通して呼び出された際どのような挙動となるでしょ 
う? 1つ選択してください 
@Transactional(propagation=Propagation.REQUIRED) 
public void transferMoney(Account src, Account target, Double amount) { 
add(src, -amount); 
add(target, amount); 
} 
@Transactional(propagation=Propagation.REQUIRES_NEW) 
public void add(Account account, Double amount) { 
// 何かしらの処理 
} 
【選択肢】 
(A). addメソッドの処理は新しいトランザクションの中で行われる 
(B). addメソッドの処理はtransferMoneyメソッドのトランザクション 
の中で行われる 
(C). addメソッドが呼ばれると例外が発生する 
(D). 上記以外 
19
試験の勉強方法 
• 模擬試験をたくさん解く 
– 無料 
– 有料 
• i Test Java 
– 20ドル程度で、5回分の模擬試験 
20 
【URL】 
http://javaetmoi.com/wp-content/uploads/2012/02/ 
spring-certification-3-mock-exam-antoine.pdf 
【URL】 
http://itestjava.com/java-certification-practice-tests/product/ 
enter.do?product=SPRING-CORE
短期間でSpringをマスターする 
手段 
21
公式の研修 
• Pivotalが運営するSpringの研修 
– 4日間 
– 印象としては、中級者向き 
– 日本でも12月以降での開催が決定 
• メリット 
– 本家が作成した教材 
– 演習の環境が持ち帰れる 
– 認定試験のチケット込み 
22 
【URL】 
http://www.pivotal.io/training#spring
研修の章立て 
• DI 
– JavaConfig 
– アノテーション 
– XML 
• テスティング 
• AOP 
• Spring JDBC 
• トランザクション 
• JPA 
• MVC 
• Spring Security 
• REST-WS 
• JMS 
• JMX 
23
今後の開催予定 
• ご興味のある方は、info-jp@pivotal.ioにお問い 
合わせください 
24
25 
ご清聴ありがとうございました
26 
ライセンスについて 
• JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ 
を元にした派生作品)の複製・頒布・表示・上演を認めます。 
• 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認め 
ます。 
• 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。

More Related Content

What's hot

データローダについてちょっと詳しくなる
データローダについてちょっと詳しくなるデータローダについてちょっと詳しくなる
データローダについてちょっと詳しくなるJunko Nakayama
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠Sho Okada
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからHiroshi Kawada
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化gree_tech
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Takayuki Shimizukawa
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介Takashi Suzuki
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
DynamoDBを導入した話
DynamoDBを導入した話DynamoDBを導入した話
DynamoDBを導入した話dcubeio
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2Takashi Hoshino
 
SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料Hironori Miura
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについてkumake
 

What's hot (20)

データローダについてちょっと詳しくなる
データローダについてちょっと詳しくなるデータローダについてちょっと詳しくなる
データローダについてちょっと詳しくなる
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
DynamoDBを導入した話
DynamoDBを導入した話DynamoDBを導入した話
DynamoDBを導入した話
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2
 
SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料SQLアンチパターン メンター用資料
SQLアンチパターン メンター用資料
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
 

Viewers also liked

エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオンエッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン土岐 孝平
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis小川 昌吾
 
Spring mvc
Spring mvcSpring mvc
Spring mvcRyo Asai
 
Metaprogramming Techniques In Groovy And Grails
Metaprogramming Techniques In Groovy And GrailsMetaprogramming Techniques In Groovy And Grails
Metaprogramming Techniques In Groovy And GrailszenMonkey
 
aws上でcloud foundryを構築してみた
aws上でcloud foundryを構築してみたaws上でcloud foundryを構築してみた
aws上でcloud foundryを構築してみたkokuboyuichi
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Uemura Yuichi
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Yuichi Hasegawa
 
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Kazuto Kusama
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Norito Agetsuma
 
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3日本Javaユーザーグループ
 
DI(依存性注入)について
DI(依存性注入)についてDI(依存性注入)について
DI(依存性注入)についてYui Ito
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Kazuto Kusama
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスYoichi KIKUCHI
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門xyzplus_net
 

Viewers also liked (14)

エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオンエッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Metaprogramming Techniques In Groovy And Grails
Metaprogramming Techniques In Groovy And GrailsMetaprogramming Techniques In Groovy And Grails
Metaprogramming Techniques In Groovy And Grails
 
aws上でcloud foundryを構築してみた
aws上でcloud foundryを構築してみたaws上でcloud foundryを構築してみた
aws上でcloud foundryを構築してみた
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
 
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
 
DI(依存性注入)について
DI(依存性注入)についてDI(依存性注入)について
DI(依存性注入)について
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門
 

Similar to 試験にでるSpring

Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCSpring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCYuichi Hasegawa
 
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
CIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用したCIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用した
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用したssuser0be501
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学Takuma SHIRAISHI
 
BotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミングBotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミングTakashi Yamanoue
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodAtsuhiro Kubo
 
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web ServiceSpring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web ServiceWataruOhno
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitAtsuhiro Kubo
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎真哉 杉野
 
バッチ高速化のあゆみ
バッチ高速化のあゆみバッチ高速化のあゆみ
バッチ高速化のあゆみdcubeio
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストTsutomu Chikuba
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージYasutomo Arai
 
【プログラミング教室】テキスト
【プログラミング教室】テキスト【プログラミング教室】テキスト
【プログラミング教室】テキストManabu Ikarashi
 
継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1Yusuke HIDESHIMA
 
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話KLab Inc. / Tech
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4favril1
 
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習Hori Tasuku
 

Similar to 試験にでるSpring (20)

Spring3.1 aop-mvc
Spring3.1 aop-mvcSpring3.1 aop-mvc
Spring3.1 aop-mvc
 
Spring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVCSpring3.1概要 AOP & MVC
Spring3.1概要 AOP & MVC
 
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
CIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用したCIが分からないPE(SETエンジニア)の1年生がWebAPIの負荷テストを背伸びしてCI運用した
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
秒速ChainerMN
秒速ChainerMN秒速ChainerMN
秒速ChainerMN
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
 
BotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミングBotとWikiを使った試験的な並列プログラミング
BotとWikiを使った試験的な並列プログラミング
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
 
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web ServiceSpring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
 
勉強会 Cvml python基礎
勉強会 Cvml python基礎勉強会 Cvml python基礎
勉強会 Cvml python基礎
 
バッチ高速化のあゆみ
バッチ高速化のあゆみバッチ高速化のあゆみ
バッチ高速化のあゆみ
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 
Spock's world
Spock's worldSpock's world
Spock's world
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
 
【プログラミング教室】テキスト
【プログラミング教室】テキスト【プログラミング教室】テキスト
【プログラミング教室】テキスト
 
継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1継続的デリバリー読書会資料 #1
継続的デリバリー読書会資料 #1
 
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話 運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
 
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
 

More from 土岐 孝平

What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?土岐 孝平
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application土岐 孝平
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security土岐 孝平
 
Microserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探るMicroserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探る土岐 孝平
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス土岐 孝平
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理土岐 孝平
 

More from 土岐 孝平 (8)

What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security
 
Microserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探るMicroserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探る
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
vFabricを触ろう
vFabricを触ろうvFabricを触ろう
vFabricを触ろう
 

試験にでるSpring

  • 2. 背景 • システム開発会社が抱える問題 – 中堅が育ってくれない・勉強してくれない • 目標がないと、勉強するとっかかりがない – Javaの技術者が多いが、Springに詳しい人が少ない • Springを勉強するための明確な目標が必要 2 Springの認定試験は無いのだろうか?
  • 3. Springの認定試験 • Certified Spring Professional 【URL】 http://mylearn.vmware.com/mgrReg/plan.cfm?plan=31110&ui=www_cert • Springの本家のPivotalが運営 ※ 本資料に掲載しているURLや、 そのページの内容は今後変更予定です • 選択式で50問(38問以上正解で合格) – 英語で出題(日本でも受験できる) • 事前に研修の受講が必要 3
  • 4. 出題範囲 • コンテナの基礎 – XML、アノテーション、 JavaConfig、ライフサイクル、テス ティング・・・ • AOP – Pointcuts、Advice、Proxy・・・ • データアクセス – Spring JDBC、Hibernate連携、トランザクション・・・ • Spring MVC – @Controller、@RequestMapping・・・ • その他 – Remoting、Security、JMS、JMX 4 【スタディーガイド】 http://mylearn.vmware.com/courseware/152239/ core-spring-3.0-certification-study-guide.pdf
  • 6. 6 【問題】 Springの説明として間違っているのはどれでしょう? 1つ選んでくださ い 【選択肢】 (A). Spring は、軽量な手段で企業向けアプリケーションのほとんどの ニーズを満たす機能をもつ (B). Springはモジュール化されており、必要なモジュールだけ使えばよ い (C). 業務ロジックのコードは基本的にSpringに依存せずに記述できる (D). 間違っているものはない。すべて正しい
  • 7. 7 【問題】 Springの説明として間違っているのはどれでしょう? 1つ選んでくださ い 【選択肢】 (A). Spring は、軽量な手段で企業向けアプリケーションのほとんどの ニーズを満たす機能をもつ (B). Springはモジュール化されており、必要なモジュールだけ使えばよ い (C). 業務ロジックのコードは基本的にSpringに依存せずに記述できる (D). 間違っているものはない。すべて正しい
  • 8. 8 【問題】 以下のコードと等しい記述はどれでしょう? 1つ選んでください @Configuration public class FooConfig { @Bean public FooService fooService() { return new FooServiceImpl(); } } 【選択肢】 (A). <bean id="fooConfig" class="com.foo.FooService"/> (B). <bean id="fooService" class="com.foo.FooServiceImpl"/> (C). <bean id="fooConfig" class="com.foo.FooServiceImpl"/> (D). 上記のいずれも該当しない。@Beanはname属性が必須である
  • 9. 9 【問題】 以下のコードと等しい記述はどれでしょう? 1つ選んでください @Configuration public class FooConfig { @Bean public FooService fooService() { return new FooServiceImpl(); } } 【選択肢】 (A). <bean id="fooConfig" class="com.foo.FooService"/> (B). <bean id="fooService" class="com.foo.FooServiceImpl"/> (C). <bean id="fooConfig" class="com.foo.FooServiceImpl"/> (D). 上記のいずれも該当しない。@Beanはname属性が必須である
  • 10. 【問題】 Beanの生成時にメソッドを実行する3つの方法で、それぞれ別のメ ソッドを呼び出した場合、どの順番で実行されますか? 1つ選択してく ださい 【選択肢】 (A). 実行は不可能である。1つのBeanに1つの方法しか適用できない (B). @PostCounstruct が付与されたメソッド、init-method で指定された メソッド、InitializingBeanのafterPropertiesSetメソッド (C). InitializingBean のafterPropertiesSetメソッド、@PostCounstruct が付与されたメソッド、init-methodで指定されたメソッド (D). @PostCounstruct が付与されたメソッド、InitializingBean の afterPropertiesSet メソッド、init-methodで指定されたメソッド 10
  • 11. 【問題】 Beanの生成時にメソッドを実行する3つの方法で、それぞれ別のメ ソッドを呼び出した場合、どの順番で実行されますか? 1つ選択してく ださい 【選択肢】 (A). 実行は不可能である。1つのBeanに1つの方法しか適用できない (B). @PostCounstruct が付与されたメソッド、init-method で指定された メソッド、InitializingBeanのafterPropertiesSetメソッド (C). InitializingBean のafterPropertiesSetメソッド、@PostCounstruct が付与されたメソッド、init-methodで指定されたメソッド (D). @PostCounstruct が付与されたメソッド、InitializingBean の afterPropertiesSet メソッド、init-methodで指定されたメソッド 11
  • 12. 12 【問題】 Join Pointをマッチングさせるための概念はどれですか? 1つ選択して ください 【選択肢】 (A). Aspect (B). Pointcut (C). Advice (D). Weaving
  • 13. 13 【問題】 Join Pointをマッチングさせるための概念はどれですか? 1つ選択して ください 【選択肢】 (A). Aspect (B). Pointcut (C). Advice (D). Weaving
  • 14. 14 【問題】 以下のPointcutの記述にマッチするメソッドはどれでしょう(複数 可)? execution(* com.foo..*.*(*)) 【選択肢】 (A). void com.foo.MyServiceImpl クラスの transfert(Money amount)メソッド (B). void com.foo.MyServiceImpl クラスの transfert(Account account, Money amount) メソッド (C). void com.foo.account.MyServiceImpl クラスの transfert(Money amount)メソッド (D). void com.foo.account.MyServiceImpl クラスの transfert(Account account, Money amount) メソッド (E). いずれもマッチしない
  • 15. 15 【問題】 以下のPointcutの記述にマッチするメソッドはどれでしょう(複数 可)? execution(* com.foo..*.*(*)) 【選択肢】 (A). void com.foo.MyServiceImpl クラスの transfert(Money amount)メソッド (B). void com.foo.MyServiceImpl クラスの transfert(Account account, Money amount) メソッド (C). void com.foo.account.MyServiceImpl クラスの transfert(Money amount)メソッド (D). void com.foo.account.MyServiceImpl クラスの transfert(Account account, Money amount) メソッド (E). いずれもマッチしない
  • 16. 【問題】 Springのtestモジュールがサポートしている機能はどれでしょう? 1つ 選択してください 16 【選択肢】 (A). インテグレーションテストで有用となるトランザクション制御 (B). テスト対象のオブジェクトのインジェクション (C). 複数のテストメソッドの実行でDIコンテナを共有 (D). 上記すべて
  • 17. 【問題】 Springのtestモジュールがサポートしている機能はどれでしょう? 1つ 選択してください 17 【選択肢】 (A). インテグレーションテストで有用となるトランザクション制御 (B). テスト対象のオブジェクトのインジェクション (C). 複数のテストメソッドの実行でDIコンテナを共有 (D). 上記すべて
  • 18. 【問題】 @Transactionalアノテーションが有効で、transferMoneyメソッドが Spring AOP Proxyを通して呼び出された際どのような挙動となるでしょ う? 1つ選択してください @Transactional(propagation=Propagation.REQUIRED) public void transferMoney(Account src, Account target, Double amount) { add(src, -amount); add(target, amount); } @Transactional(propagation=Propagation.REQUIRES_NEW) public void add(Account account, Double amount) { // 何かしらの処理 } 【選択肢】 (A). addメソッドの処理は新しいトランザクションの中で行われる (B). addメソッドの処理はtransferMoneyメソッドのトランザクション の中で行われる (C). addメソッドが呼ばれると例外が発生する (D). 上記以外 18
  • 19. 【問題】 @Transactionalアノテーションが有効で、transferMoneyメソッドが Spring AOP Proxyを通して呼び出された際どのような挙動となるでしょ う? 1つ選択してください @Transactional(propagation=Propagation.REQUIRED) public void transferMoney(Account src, Account target, Double amount) { add(src, -amount); add(target, amount); } @Transactional(propagation=Propagation.REQUIRES_NEW) public void add(Account account, Double amount) { // 何かしらの処理 } 【選択肢】 (A). addメソッドの処理は新しいトランザクションの中で行われる (B). addメソッドの処理はtransferMoneyメソッドのトランザクション の中で行われる (C). addメソッドが呼ばれると例外が発生する (D). 上記以外 19
  • 20. 試験の勉強方法 • 模擬試験をたくさん解く – 無料 – 有料 • i Test Java – 20ドル程度で、5回分の模擬試験 20 【URL】 http://javaetmoi.com/wp-content/uploads/2012/02/ spring-certification-3-mock-exam-antoine.pdf 【URL】 http://itestjava.com/java-certification-practice-tests/product/ enter.do?product=SPRING-CORE
  • 22. 公式の研修 • Pivotalが運営するSpringの研修 – 4日間 – 印象としては、中級者向き – 日本でも12月以降での開催が決定 • メリット – 本家が作成した教材 – 演習の環境が持ち帰れる – 認定試験のチケット込み 22 【URL】 http://www.pivotal.io/training#spring
  • 23. 研修の章立て • DI – JavaConfig – アノテーション – XML • テスティング • AOP • Spring JDBC • トランザクション • JPA • MVC • Spring Security • REST-WS • JMS • JMX 23
  • 26. 26 ライセンスについて • JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ を元にした派生作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認め ます。 • 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。