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

Contenu connexe

Tendances

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57Preferred Networks
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPFShuji Yamada
 
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方kwatch
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?takezoe
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
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
 
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_cccPivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_cccMasatoshi Tada
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugMasatoshi Tada
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)Koichiro Matsuoka
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)NTT DATA Technology & Innovation
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢apkiban
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークTakuya ASADA
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みTakeshi Ogawa
 

Tendances (20)

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
 
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
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
 
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_cccPivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
 

En vedette

エッセンシャル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
 

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

Similaire à 試験にでる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
 
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
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門guestd4898b
 

Similaire à 試験にでる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
 
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 を使った強化学習
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門
 

Plus de 土岐 孝平

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 Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
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入門土岐 孝平
 
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしようSpringを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう土岐 孝平
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス土岐 孝平
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理土岐 孝平
 

Plus de 土岐 孝平 (10)

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 Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
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入門
 
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マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ を元にした派生作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認め ます。 • 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。