SlideShare ist ein Scribd-Unternehmen logo
1 von 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マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ 
を元にした派生作品)の複製・頒布・表示・上演を認めます。 
• 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認め 
ます。 
• 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。

Weitere ähnliche Inhalte

Was ist angesagt?

LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
 

Was ist angesagt? (20)

いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Google Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサGoogle Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサ
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法JPAのキャッシュを使ったアプリケーション高速化手法
JPAのキャッシュを使ったアプリケーション高速化手法
 
Presto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon AthenaPresto ベースのマネージドサービス Amazon Athena
Presto ベースのマネージドサービス Amazon Athena
 
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
システム間連携を担うSpring Integrationのエンタープライズ開発での活用システム間連携を担うSpring Integrationのエンタープライズ開発での活用
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
 

Andere mochten auch

Spring mvc
Spring mvcSpring mvc
Spring mvc
Ryo Asai
 
Metaprogramming Techniques In Groovy And Grails
Metaprogramming Techniques In Groovy And GrailsMetaprogramming Techniques In Groovy And Grails
Metaprogramming Techniques In Groovy And Grails
zenMonkey
 
aws上でcloud foundryを構築してみた
aws上でcloud foundryを構築してみたaws上でcloud foundryを構築してみた
aws上でcloud foundryを構築してみた
kokuboyuichi
 

Andere mochten auch (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適用におけるバッドノウハウとベタープラクティス
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門
 

Ähnlich wie 試験にでるSpring

Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
Takuma SHIRAISHI
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
Yasutomo Arai
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
favril1
 

Ähnlich wie 試験にでる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 を使った強化学習
 

Mehr von 土岐 孝平

Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
 

Mehr von 土岐 孝平 (12)

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入門
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしようSpringを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス
 
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マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ を元にした派生作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認め ます。 • 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。