Upload
Download free for 30 days
Login
Submit search
Springを使ったwebアプリにリファクタリングしよう
Download as PPT, PDF
1 like
6,953 views
土岐 孝平
Spring Day 2016のハンズオンの座学資料です。
Software
Read more
1 of 27
Download now
Downloaded 23 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Most read
17
18
Most read
19
20
21
22
23
24
Most read
25
26
27
More Related Content
PDF
これから始めるSpringのwebアプリケーション
土岐 孝平
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
PDF
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
PDF
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
PDF
今さら聞けないDiとspring
土岐 孝平
PDF
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
PDF
Spring Bootをはじめる時にやるべき10のこと
心 谷本
PPT
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
これから始めるSpringのwebアプリケーション
土岐 孝平
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
今さら聞けないDiとspring
土岐 孝平
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
Spring Bootをはじめる時にやるべき10のこと
心 谷本
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
What's hot
(20)
PDF
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
PPTX
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
PDF
Form認証で学ぶSpring Security入門
Ryosuke Uchitate
PDF
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
PPTX
Spring超入門-Springと出会ってから1年半-
Ryosuke Uchitate
PPTX
初心者だった私がSpring(DIコンテナ)を分かるまで
英雅 田村
PPTX
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Takeshi Hirosue
PPT
試験にでるSpring
土岐 孝平
PDF
REST API のコツ
pospome
PDF
Junitを使ったjavaのテスト入門
Satoshi Kubo
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
PDF
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
PDF
Rdraモデリングをしよう
Zenji Kanzaki
PDF
Spring fest2020 spring-security
土岐 孝平
PDF
ユーザーインタビューするときは、どうやらゾンビのおでましさ
Yoshiki Hayama
PDF
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
PDF
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
PDF
3分でわかるAzureでのService Principal
Toru Makabe
PDF
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
Naoki Nagazumi
PDF
Parser combinatorってなんなのさ
cct-inc
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
Form認証で学ぶSpring Security入門
Ryosuke Uchitate
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
Spring超入門-Springと出会ってから1年半-
Ryosuke Uchitate
初心者だった私がSpring(DIコンテナ)を分かるまで
英雅 田村
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Takeshi Hirosue
試験にでるSpring
土岐 孝平
REST API のコツ
pospome
Junitを使ったjavaのテスト入門
Satoshi Kubo
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
オープンソースのAPIゲートウェイ Kong ご紹介
briscola-tokyo
Rdraモデリングをしよう
Zenji Kanzaki
Spring fest2020 spring-security
土岐 孝平
ユーザーインタビューするときは、どうやらゾンビのおでましさ
Yoshiki Hayama
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
3分でわかるAzureでのService Principal
Toru Makabe
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
Naoki Nagazumi
Parser combinatorってなんなのさ
cct-inc
Ad
Viewers also liked
(20)
PPTX
Spring bootで学ぶ初めてのwebアプリ開発
terahide
PDF
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa
PDF
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
PDF
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
PDF
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
PDF
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
PDF
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.
PPTX
Cloud Foundry x Wagby
Yoshinori Nie
PDF
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
PPTX
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
PDF
Distributed tracing - get a grasp on your production
nklmish
PPT
Distributed Tracing Velocity2016
Reshmi Krishna
PPTX
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
PDF
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
PDF
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
tty fky
PPTX
高速なソートアルゴリズムを書こう!!
masakazu matsubara
PPTX
Javaアプリケーションの モダナイゼーションアプローチ
CData Software Japan
PDF
Another compilation method in java - AOT (Ahead of Time) compilation
Logico
PPTX
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Spring bootで学ぶ初めてのwebアプリ開発
terahide
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.
Cloud Foundry x Wagby
Yoshinori Nie
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
Distributed tracing - get a grasp on your production
nklmish
Distributed Tracing Velocity2016
Reshmi Krishna
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
tty fky
高速なソートアルゴリズムを書こう!!
masakazu matsubara
Javaアプリケーションの モダナイゼーションアプローチ
CData Software Japan
Another compilation method in java - AOT (Ahead of Time) compilation
Logico
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Ad
Similar to Springを使ったwebアプリにリファクタリングしよう
(20)
PDF
第12回rest勉強会 これまでの補足・展望編
ksimoji
PDF
SpringBootの研修本で学んだこと
iPride Co., Ltd.
PDF
Spring.project
広平 田村
PDF
Springの今
Kazuyuki Kawamura
PPTX
スキトラ Spring + mybatis
小川 昌吾
PDF
Springの向かう先
Kazuyuki Kawamura
PDF
進化する Web ~ Progressive Web Apps の実装と応用 ~
Microsoft Azure Japan
PDF
オープニング
konekto
PPTX
Challenge PWA!! TRY PWA4WP!
Ryu Shindo
PDF
Spring知っておきたい
Yuichi Hasegawa
PPTX
UnicastWS vol.2
Unicast Inc.
PPTX
Lightning componentとlightning design system
Noriko Iwai
PPTX
Challenge PWA!! WordCamp Tokyo 2018
Ryu Shindo
PPTX
Azure Service Fabric 概要
Daiyu Hatakeyama
PDF
Rendr入門: サーバサイドで(も)動かす、Backbone.js
Masahiko Tachizono
PDF
Force.com開発基礎
Salesforce Developers Japan
PPTX
JViews Diagrammer チュートリアル (JSF 2)
RWSJapan
PDF
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
Iida Yukako
PDF
Reco choku tech night #09 -reinvent2018報告会-
recotech
PDF
Java web application testing
Tokuhiro Matsuno
第12回rest勉強会 これまでの補足・展望編
ksimoji
SpringBootの研修本で学んだこと
iPride Co., Ltd.
Spring.project
広平 田村
Springの今
Kazuyuki Kawamura
スキトラ Spring + mybatis
小川 昌吾
Springの向かう先
Kazuyuki Kawamura
進化する Web ~ Progressive Web Apps の実装と応用 ~
Microsoft Azure Japan
オープニング
konekto
Challenge PWA!! TRY PWA4WP!
Ryu Shindo
Spring知っておきたい
Yuichi Hasegawa
UnicastWS vol.2
Unicast Inc.
Lightning componentとlightning design system
Noriko Iwai
Challenge PWA!! WordCamp Tokyo 2018
Ryu Shindo
Azure Service Fabric 概要
Daiyu Hatakeyama
Rendr入門: サーバサイドで(も)動かす、Backbone.js
Masahiko Tachizono
Force.com開発基礎
Salesforce Developers Japan
JViews Diagrammer チュートリアル (JSF 2)
RWSJapan
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
Iida Yukako
Reco choku tech night #09 -reinvent2018報告会-
recotech
Java web application testing
Tokuhiro Matsuno
More from 土岐 孝平
(7)
PDF
What's new in Spring Boot 2.6 ?
土岐 孝平
PDF
SpringベースのCloud Native Application
土岐 孝平
PDF
Microserviceの今どきのインフラを探る
土岐 孝平
PDF
OpenID Connect入門
土岐 孝平
PDF
業務システムとマイクロサービス
土岐 孝平
PDF
エッセンシャルCore springハンズオン
土岐 孝平
PPT
vFabricを触ろう
土岐 孝平
What's new in Spring Boot 2.6 ?
土岐 孝平
SpringベースのCloud Native Application
土岐 孝平
Microserviceの今どきのインフラを探る
土岐 孝平
OpenID Connect入門
土岐 孝平
業務システムとマイクロサービス
土岐 孝平
エッセンシャルCore springハンズオン
土岐 孝平
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