More Related Content
Similar to 試験にでるSpring (20)
試験にでる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). いずれもマッチしない
- 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マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ
を元にした派生作品)の複製・頒布・表示・上演を認めます。
• 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認め
ます。
• 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。