SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
1
エッセンシャル
Core Springハンズオン
日本Springユーザ会/合同会社Starlight&Storm
土岐 孝平・大野 渉
講演者
• 土岐 孝平
– Spring認定講師。アーキテク
トやコンサルタントとしても活
動し、記事執筆等もおこなっ
ている。最近は、JavaScript
関連の技術に興味を持って
いる。
• 大野 渉
– Java Webアプリケーション
開発を中心に経験を積み、
現在はSpringやオブジェクト
指向設計/実装を中心にコン
サルタント/講師として活動中
。
2
ハンズオンについて
• 対象者
– Springの初心者~中級者
• 目標
– 「Springは便利そうだな」と感じる
• その他
– PivotalのCore Spring 研修のコンテンツを使用
3
Core Spring 研修
• 本家Pivotalが提供する研修
– 他の研修:Spring Web、Enterprise Spring・・・
• 4日間
• Spring Frameworkの機能が体系的に学べる
• 資格試験のバウチャーがもらえる
4
Core Spring 研修の内容
5
• DI
– JavaConfig
– アノテーション
– XML
• テスト
• AOP
• Spring JDBC
• トランザクション
• JPA
• Spring MVC
• Spring Security
• Spring Boot
• REST-WS
• JMS
ハンズオンで行う部分
6
• DI
– JavaConfig
– アノテーション
– XML
• テスト
• AOP
• Spring JDBC
• トランザクション
• JPA
• Spring MVC
• Spring Security
• Spring Boot
• REST-WS
• JMS
①①①① ②②②②
• DIコンテナの役割を考える
• アプリケーションは、オブジェクトが他のオブジェクトを利用し
ながら処理を行う
ハンズオンの前に
7
利用したいオブジェクトをどうやって取得するか?利用したいオブジェクトをどうやって取得するか?利用したいオブジェクトをどうやって取得するか?利用したいオブジェクトをどうやって取得するか?
::::TransferServiceImpl
: JdbcAccount
Repository
::::StubAccount
Repository
DB
DIコンテナの役割
• 利用したいオブジェクトを用意してくれる
– 利用したいオブジェクトを取得する処理が不要
– オブジェクトの切り替えが簡単
8
DIコンテナが行ってること
9
::::TransferServiceImpl
: JdbcAccount
Repository
DIコンテナコンテナコンテナコンテナ
(1) repository = new JdbcAccountRepository();
(2) service = new TransferServiceImpl();
(3) service.setAccountRepository(repository);
(1)
(2)
(3)
アプリケーションのコード
10
public class JdbcAccountRepository
implements AccountRepository {
・・・・・・・・・・・・
}
public class TransferServiceImpl {
private AccountRepository repository;
public void setAccountRepository(AccountRepository ar) {
repository = ar;
}
・・・・・・・・・・・・
}
public class StubAccountRepository
implements AccountRepository {
・・・・・・・・・・・・
}
StubAccount
Repository
JdbcAccount
Repository
TransferServiceImpl
Account
Repository
・利用したいオブジェクトを取得するコードが不要・利用したいオブジェクトを取得するコードが不要・利用したいオブジェクトを取得するコードが不要・利用したいオブジェクトを取得するコードが不要
・具象クラスに依存しない・具象クラスに依存しない・具象クラスに依存しない・具象クラスに依存しない
・・・・POJOで書けるで書けるで書けるで書ける(Springに依存しないに依存しないに依存しないに依存しない)
オブジェクトの切り替え(単体テスト時)
11
::::TransferServiceImpl
DIコンテナコンテナコンテナコンテナ
(1) repository = new StubAccountRepository();
(2) service = new TransferServiceImpl();
(3) service.setAccountRepository(repository);
(1)
(2)
(3)
::::StubAccount
Repository
ハンズオン①
Dependency Injection Using Spring
(別紙参照)
12
ハンズオン②
Spring Web MVC Essentials
(別紙参照)
13
おわりに
• Springをもっと勉強したい方は、Core Spring 研修がお勧めです
– メリット
• 体系的に機能を学習できる
• 各機能を試せる環境を入手できる
– コースの案内
• https://pivotal.io/jp/training
• http://connect.pivotal.io/rs/625-IUJ-
009/images/CoreSpring_20150809.pdf
– 次回開催予定
• 10/15(木) - 10/16(金) および10/19(月) - 10/20(火)
• http://edu.jtp.co.jp/course/314
– その他コースについて
• https://pivotal.io/jp/training
• Springをもっと勉強したいけど、すぐに使いたい方は、Starlight&Storm
に相談しましょう
14
Starlight&StormStarlight&StormStarlight&StormStarlight&Storm LLCLLCLLCLLC
• Springとオブジェクト指向を知り尽くした会社とオブジェクト指向を知り尽くした会社とオブジェクト指向を知り尽くした会社とオブジェクト指向を知り尽くした会社
– 要件定義要件定義要件定義要件定義
– アーキテクチャ構築・評価アーキテクチャ構築・評価アーキテクチャ構築・評価アーキテクチャ構築・評価
– 開発者教育開発者教育開発者教育開発者教育
– 開発支援開発支援開発支援開発支援
Starlight & Storm 検索検索検索検索
詳しくは詳しくは詳しくは詳しくはWebでででで
15
16
ご清聴ありがとうございました
17
ライセンスについて
• JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生
作品)の複製・頒布・表示・上演を認めます。
• 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。
• 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。

Mais conteúdo relacionado

Mais procurados

試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring
土岐 孝平
 
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
葛 飛
 

Mais procurados (20)

ゼロから始めるオープンソース生活
ゼロから始めるオープンソース生活ゼロから始めるオープンソース生活
ゼロから始めるオープンソース生活
 
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfkSpring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
 
Spring知っておきたい
Spring知っておきたいSpring知っておきたい
Spring知っておきたい
 
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring
 
Behind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship ProgramBehind-the-Scenes and Goals of LINE Summer Internship Program
Behind-the-Scenes and Goals of LINE Summer Internship Program
 
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
Go (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的なGo (5) JAZUG 関西とゆかいな仲間たち的な
Go (5) JAZUG 関西とゆかいな仲間たち的な
 
営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント | リブセンス
営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント | リブセンス営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント | リブセンス
営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント | リブセンス
 
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
 
SendGridを使ってみよう
SendGridを使ってみようSendGridを使ってみよう
SendGridを使ってみよう
 
Send grid softlayer_nagoya
Send grid softlayer_nagoyaSend grid softlayer_nagoya
Send grid softlayer_nagoya
 
Spring I/O 2017での拡張のお話
Spring I/O 2017での拡張のお話Spring I/O 2017での拡張のお話
Spring I/O 2017での拡張のお話
 
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
お得に手軽に♪試してみよう!サーバーレスアーキテクチャ ~Azure Functions / Logic Apps~
 
現実的な「WordPress on Azure App Service」 クイックスタート
現実的な「WordPress on Azure App Service」 クイックスタート現実的な「WordPress on Azure App Service」 クイックスタート
現実的な「WordPress on Azure App Service」 クイックスタート
 
Introduction of public cloud softlayer and bluemix
Introduction of public cloud softlayer and bluemixIntroduction of public cloud softlayer and bluemix
Introduction of public cloud softlayer and bluemix
 
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
エンジニアからデザイナーに贈るプロトタイピングのすすめ - 春のフロントエンド祭り 2015
 
three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現three.jsによる一歩進めたグラフィカルな表現
three.jsによる一歩進めたグラフィカルな表現
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
 

Destaque

gumiStudy#1 kvs 発表資料
gumiStudy#1 kvs 発表資料gumiStudy#1 kvs 発表資料
gumiStudy#1 kvs 発表資料
Yasuhiro Horiuchi
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
Ryo Asai
 
Spring勉強会
Spring勉強会Spring勉強会
Spring勉強会
gaaupp
 
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
 

Destaque (14)

gumiStudy#1 kvs 発表資料
gumiStudy#1 kvs 発表資料gumiStudy#1 kvs 発表資料
gumiStudy#1 kvs 発表資料
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Spring勉強会
Spring勉強会Spring勉強会
Spring勉強会
 
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を構築してみた
 
システムアーキテクト~My batis編~
システムアーキテクト~My batis編~システムアーキテクト~My batis編~
システムアーキテクト~My batis編~
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
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時点)
 
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適用におけるバッドノウハウとベタープラクティス
 
ネットワーク超入門
ネットワーク超入門ネットワーク超入門
ネットワーク超入門
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 

Semelhante a エッセンシャルCore springハンズオン

sukusuku-scrum introduction
sukusuku-scrum introductionsukusuku-scrum introduction
sukusuku-scrum introduction
Nao Yamamoto
 
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
Fumitaka Inayama
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
Hiromu Shioya
 
[Jjug]java small object programming
[Jjug]java small object programming[Jjug]java small object programming
[Jjug]java small object programming
Yuichi Hasegawa
 

Semelhante a エッセンシャルCore springハンズオン (20)

sukusuku-scrum introduction
sukusuku-scrum introductionsukusuku-scrum introduction
sukusuku-scrum introduction
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
React native
React nativeReact native
React native
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
 
Agile adoption for Higher Education & Training Center in companies
Agile adoption for Higher Education & Training Center in companiesAgile adoption for Higher Education & Training Center in companies
Agile adoption for Higher Education & Training Center in companies
 
EPUB Distributable Objects - ブラウザーアプリとの連携の検討
EPUB Distributable Objects - ブラウザーアプリとの連携の検討EPUB Distributable Objects - ブラウザーアプリとの連携の検討
EPUB Distributable Objects - ブラウザーアプリとの連携の検討
 
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
「本を書くプロジェクトマネジメントはWbsかアジャイルか」 XP祭り2015
 
Using WordPress as a Content Management and Comment Site for Teacher Education
Using WordPress as a Content Management and Comment Site for Teacher EducationUsing WordPress as a Content Management and Comment Site for Teacher Education
Using WordPress as a Content Management and Comment Site for Teacher Education
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCC
 
SpringBootの研修本で学んだこと
SpringBootの研修本で学んだことSpringBootの研修本で学んだこと
SpringBootの研修本で学んだこと
 
[Jjug]java small object programming
[Jjug]java small object programming[Jjug]java small object programming
[Jjug]java small object programming
 
2013講義1
2013講義12013講義1
2013講義1
 
知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー知ってるようで知らないWeb基礎セミナー
知ってるようで知らないWeb基礎セミナー
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterprise
 
超スモールなサービスの開発と運用をしてみた.pptx
超スモールなサービスの開発と運用をしてみた.pptx超スモールなサービスの開発と運用をしてみた.pptx
超スモールなサービスの開発と運用をしてみた.pptx
 
W&B Seminar #5(to share).pdf
W&B Seminar #5(to share).pdfW&B Seminar #5(to share).pdf
W&B Seminar #5(to share).pdf
 
デザイナーにもできる再構築の高速化/負荷分散
デザイナーにもできる再構築の高速化/負荷分散 デザイナーにもできる再構築の高速化/負荷分散
デザイナーにもできる再構築の高速化/負荷分散
 
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
 
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へオブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ
 

Mais de 土岐 孝平

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

Mais de 土岐 孝平 (11)

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入門
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
vFabricを触ろう
vFabricを触ろうvFabricを触ろう
vFabricを触ろう
 

エッセンシャルCore springハンズオン