Submit Search
Upload
Springを使ったwebアプリにリファクタリングしよう
•
Download as PPT, PDF
•
1 like
•
6,815 views
土岐 孝平
Follow
Spring Day 2016のハンズオンの座学資料です。
Read less
Read more
Software
Report
Share
Report
Share
1 of 27
Download now
Recommended
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
Spring超入門-Springと出会ってから1年半-
Spring超入門-Springと出会ってから1年半-
Ryosuke Uchitate
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Recommended
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
Spring超入門-Springと出会ってから1年半-
Spring超入門-Springと出会ってから1年半-
Ryosuke Uchitate
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
試験にでるSpring
試験にでるSpring
土岐 孝平
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Masatoshi Tada
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
Masatoshi Tada
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
Spring fest2020 spring-security
Spring fest2020 spring-security
土岐 孝平
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Masatoshi Tada
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
Asami Abe
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
Ryosuke Uchitate
SpringBootにおけるテンプレートエンジンの活用
SpringBootにおけるテンプレートエンジンの活用
iPride Co., Ltd.
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
apkiban
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
Takehiro Suemitsu
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa
More Related Content
What's hot
試験にでるSpring
試験にでるSpring
土岐 孝平
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Masatoshi Tada
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
Masatoshi Tada
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
Spring fest2020 spring-security
Spring fest2020 spring-security
土岐 孝平
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Masatoshi Tada
Spring bootでweb 基本編
Spring bootでweb 基本編
なべ
イベント・ソーシングを知る
イベント・ソーシングを知る
Shuhei Fujita
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
Asami Abe
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
Ryosuke Uchitate
SpringBootにおけるテンプレートエンジンの活用
SpringBootにおけるテンプレートエンジンの活用
iPride Co., Ltd.
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
apkiban
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
Takehiro Suemitsu
What's hot
(20)
試験にでるSpring
試験にでるSpring
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
Spring fest2020 spring-security
Spring fest2020 spring-security
SpringBootTest入門
SpringBootTest入門
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Spring bootでweb 基本編
Spring bootでweb 基本編
イベント・ソーシングを知る
イベント・ソーシングを知る
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Form認証で学ぶSpring Security入門
Form認証で学ぶSpring Security入門
SpringBootにおけるテンプレートエンジンの活用
SpringBootにおけるテンプレートエンジンの活用
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
大規模・長期保守を見据えたエンタープライズシステム開発へのSpring Frameworkの適用
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
Viewers also liked
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.
Cloud Foundry x Wagby
Cloud Foundry x Wagby
Yoshinori Nie
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
Takuya Hattori
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
Distributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your production
nklmish
Distributed Tracing Velocity2016
Distributed Tracing Velocity2016
Reshmi Krishna
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
tty fky
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
masakazu matsubara
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
CData Software Japan
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
Logico
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Viewers also liked
(20)
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Cloud Foundry x Wagby
Cloud Foundry x Wagby
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Distributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your production
Distributed Tracing Velocity2016
Distributed Tracing Velocity2016
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Similar to Springを使ったwebアプリにリファクタリングしよう
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編
ksimoji
SpringBootの研修本で学んだこと
SpringBootの研修本で学んだこと
iPride Co., Ltd.
Spring.project
Spring.project
広平 田村
Springの今
Springの今
Kazuyuki Kawamura
スキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吾
Springの向かう先
Springの向かう先
Kazuyuki Kawamura
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
Microsoft Azure Japan
オープニング
オープニング
konekto
Challenge PWA!! TRY PWA4WP!
Challenge PWA!! TRY PWA4WP!
Ryu Shindo
Spring知っておきたい
Spring知っておきたい
Yuichi Hasegawa
UnicastWS vol.2
UnicastWS vol.2
Unicast Inc.
Lightning componentとlightning design system
Lightning componentとlightning design system
Noriko Iwai
Challenge PWA!! WordCamp Tokyo 2018
Challenge PWA!! WordCamp Tokyo 2018
Ryu Shindo
Azure Service Fabric 概要
Azure Service Fabric 概要
Daiyu Hatakeyama
Rendr入門: サーバサイドで(も)動かす、Backbone.js
Rendr入門: サーバサイドで(も)動かす、Backbone.js
Masahiko Tachizono
Force.com開発基礎
Force.com開発基礎
Salesforce Developers Japan
JViews Diagrammer チュートリアル (JSF 2)
JViews Diagrammer チュートリアル (JSF 2)
RWSJapan
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
Iida Yukako
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
recotech
Java web application testing
Java web application testing
Tokuhiro Matsuno
Similar to Springを使ったwebアプリにリファクタリングしよう
(20)
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編
SpringBootの研修本で学んだこと
SpringBootの研修本で学んだこと
Spring.project
Spring.project
Springの今
Springの今
スキトラ Spring + mybatis
スキトラ Spring + mybatis
Springの向かう先
Springの向かう先
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
オープニング
オープニング
Challenge PWA!! TRY PWA4WP!
Challenge PWA!! TRY PWA4WP!
Spring知っておきたい
Spring知っておきたい
UnicastWS vol.2
UnicastWS vol.2
Lightning componentとlightning design system
Lightning componentとlightning design system
Challenge PWA!! WordCamp Tokyo 2018
Challenge PWA!! WordCamp Tokyo 2018
Azure Service Fabric 概要
Azure Service Fabric 概要
Rendr入門: サーバサイドで(も)動かす、Backbone.js
Rendr入門: サーバサイドで(も)動かす、Backbone.js
Force.com開発基礎
Force.com開発基礎
JViews Diagrammer チュートリアル (JSF 2)
JViews Diagrammer チュートリアル (JSF 2)
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
Java web application testing
Java web application testing
More from 土岐 孝平
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
土岐 孝平
SpringベースのCloud Native Application
SpringベースのCloud Native Application
土岐 孝平
Microserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探る
土岐 孝平
OpenID Connect入門
OpenID Connect入門
土岐 孝平
業務システムとマイクロサービス
業務システムとマイクロサービス
土岐 孝平
エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン
土岐 孝平
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
vFabricを触ろう
vFabricを触ろう
土岐 孝平
More from 土岐 孝平
(8)
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
SpringベースのCloud Native Application
SpringベースのCloud Native Application
Microserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探る
OpenID Connect入門
OpenID Connect入門
業務システムとマイクロサービス
業務システムとマイクロサービス
エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
vFabricを触ろう
vFabricを触ろう
Springを使ったwebアプリにリファクタリングしよう
1.
1 【ハンズオン】 Spring を使った Web
アプリに リファクタリングしよう 2016/11/18 日本 Spring ユーザ会 土岐 孝平
2.
自己紹介 • 土岐 孝平
( とき こうへい ) • Spring を使用したシステム開発の支援 • Java や Spring の研修の講師 • 資格 – Spring Professional – Spring Web Application Developer • 書籍の執筆 2 [ 改訂新版 ]Spring 入門
3.
ハンズオンの概要 • Servlet ・
JDBC を直接使ったアプリを、 Spring を使ったアプリにリファクタリングする • プログラムが洗練されて、生産性が上がること を実感する • Spring が行ってることを知る – 洗練された部分≒裏で Spring が働く部分 3
4.
アプリの題材 • 顧客管理アプリ 4 参照系 更新系
5.
アプリの構造 ( 現状
) 5 web.xml DB ブラウザ JSP ファイル Customer XxxServlet Customer ServiceImpl Customer DaoImpl Customer Service Customer Dao Customer JDBC JDBC プレゼンテーション層 サービス層 データアクセス層
6.
問題点 • データアクセス層 – リソースの取得・解放のコードが冗長 •
サービス層 – トランザクション制御のコードが冗長 • プレゼンテーション層 – リクエストのマッピングが面倒 – 入力チェックのコードが複雑 • その他 – 下位の層の具象クラスに依存 6
7.
リソースの取得・解放のコードが冗長 • sample.customer.dao. CustomerDaoImpl
クラス 7 データアクセス層
8.
トランザクション制御のコードが冗長 • sample.customer.service. CustomerServiceImpl 8 サービス層
9.
リクエストのマッピングが面倒 • WEB-INF/web.xml 9 プレゼンテーション層
10.
入力チェックのコードが複雑 • sample.customer.servlet. CustomerEditServlet 10 プレゼンテーション層
11.
下位の層の具象クラスに依存 • sample.customer.service. CustomerServiceImpl 11 その他
12.
【演習】 Spring を使って解決しましょう •
どのように解決されるか、演習を通して理解しましょう • 演習手順は github にアップされています – https://github.com/KouheiToki/jsug-handson-20161118 • 演習時間: 80 分 – 目安 • 躓いたら、講師陣にお気軽にお声掛けください 12 初心者 中級者 参照系の機能 80 分 45 分 更新系の機能 50 分 35 分
13.
改善点 • データアクセス層 – DB
接続・切断のコードなくなった • サービス層 – トランザクション制御のコードがなくなった • プレゼンテーション層 – リクエストのマッピングが簡単になった – 入力チェックが簡単になった • その他 – 下位の層の具象クラスに依存しなくなった 13
14.
リソースの取得・解放のコードがなくなった • sample.customer.dao. CustomerDaoImpl
クラス 14 データアクセス層
15.
トランザクション制御のコードがなくなった • sample.customer.service. CustomerServiceImpl 15 サービス層
16.
リクエストのマッピングが簡単になった • sample.customer.controller.CustomerShowController 16 プレゼンテーション層
17.
入力チェックが簡単になった • sample.customer.entity.Customer 17 プレゼンテーション層
18.
下位の層の具象クラスに依存しなくなった • sample.customer.service. CustomerServiceImpl 18 その他
19.
その他ポイント • Bean のコンフィグレーション –
コンフィグレーション方法の種類と使い分け • データアクセス – コネクション・トランザクション周りの仕組み • Spring MVC – 画面周りの処理の流れ • Spring Boot – Spring Boot が行っていること 19
20.
コンフィグレーションの方法 • コンフィグレーションの方法は3種類から選べ ます – XML –
アノテーション – JavaConfig 20 n のコンフィグレーション DI コンテナ : Foo 結果は同じ ※ DI コンテナが 管理するオブジェクトのことを Bean という
21.
一般的と思われる使い分け • 業務個別の Bean(Controller
、 Service 、 Dao) はアノテーション – Bean の数が増えてもメンテナンスが楽 • 裏方の Bean は XML もしくは JavaConfig – 環境ごとに Bean 定義を用意&一元化できて切替が容易 – サードパーティのクラスにアノテーションは付けれない 21 : Controller : Service : Dao : Transaction Manager : DataSource : View Resolver 本番用 テスト用 業務個別 裏方 n のコンフィグレーション : Transaction Manager : DataSource : View Resolver
22.
コネクション・ トランザクション周りの仕組み • コネクションの取得・解放、トランザクションの開始・終了は Spring が行う –
アプリで上記のコードは出てこない – コネクションを引数で渡さなくてよい 22 foo : Controller : Proxy @Transactional : Service : Dao :データア クセス機能 foo bar baz SQL ThreadLocal : Connection connect 、 begin commit 、 close データアクセス
23.
• HttpServlet を継承した
DispacherServlet が全体 の処理を制御している 画面周りの処理の流れ 23 Controller Model Dispatcher Servlet Handler Mapping Handler Adapter View Resolver View ブラウザ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧⑨ Controller と メソッドを 特定 引数の値を 用意 View の形式・ ファイルを特 定 全体の処理 を制御 Spring MVC
24.
Spring Boot が行っていること •
必要な Jar ファイルのダウンロードや、裏方の Bean のコンフィグレーショ ン、組込サーバ (Tomcat) の実行を自動で行ってくれる • 業務個別の Bean のプログラムの作りは、 Boot を使っても使わなくても変 わらない • 組込じゃない Tomcat にデプロイすることも可能 24 : Controller : Service : Dao 裏方の Bean : Tomcat 組込サーバ 必要な Jar ファイル Spring の jar JPA の jar JUnit の jar ・・・ Boot が用意 業務個別の Bean ・・・ Spring Boot Tomcat の jar : Transaction Manager : DataSource : View Resolver 接続先などの プロパティ 今回 使用した部分
25.
さいごに • 書籍を購入して、知識を広げましょう • おすすめの書籍 25 [
改訂新版 ]Spring 入門 Spring 徹底入門
26.
26 ご清聴ありがとうございました
27.
27 ライセンスについて • JSUG マスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれ を元にした派生作品)の複製・頒布・表示・上演を認めます。 •
非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認め ます。 • 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。
Download now