Submit Search
Springを何となく使ってる人が抑えるべきポイント
16 likes
25,991 views
土岐 孝平
Springのポイントを押さえて開発を面白くしましょう。
Software
Read more
1 of 18
Download now
Downloaded 69 times
1
2
3
4
5
6
7
8
9
10
Most read
11
Most read
12
13
14
15
Most read
16
17
18
More Related Content
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
PDF
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
PPTX
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
PDF
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
PDF
今さら聞けないDiとspring
土岐 孝平
PDF
これから始めるSpringのwebアプリケーション
土岐 孝平
PDF
Spring Bootをはじめる時にやるべき10のこと
心 谷本
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
今さら聞けないDiとspring
土岐 孝平
これから始めるSpringのwebアプリケーション
土岐 孝平
Spring Bootをはじめる時にやるべき10のこと
心 谷本
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
What's hot
(20)
PDF
Junitを使ったjavaのテスト入門
Satoshi Kubo
PPT
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
PDF
Javaのログ出力: 道具と考え方
Taku Miyakawa
PDF
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
PPT
Springを使ったwebアプリにリファクタリングしよう
土岐 孝平
PDF
SpringBootTest入門
Yahoo!デベロッパーネットワーク
PDF
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
PDF
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
PDF
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
PDF
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
ssuser070fa9
PDF
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
PPTX
世界一わかりやすいClean Architecture
Atsushi Nakamura
KEY
やはりお前らのMVCは間違っている
Koichi Tanaka
PDF
MagicOnion入門
torisoup
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
PPTX
Redisの特徴と活用方法について
Yuji Otani
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PDF
Practical migration from JSP to Thymeleaf
Toshiki Iga
PDF
そんなトランザクションマネージャで大丈夫か?
takezoe
Junitを使ったjavaのテスト入門
Satoshi Kubo
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
Javaのログ出力: 道具と考え方
Taku Miyakawa
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
Springを使ったwebアプリにリファクタリングしよう
土岐 孝平
SpringBootTest入門
Yahoo!デベロッパーネットワーク
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
ssuser070fa9
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
世界一わかりやすいClean Architecture
Atsushi Nakamura
やはりお前らのMVCは間違っている
Koichi Tanaka
MagicOnion入門
torisoup
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Redisの特徴と活用方法について
Yuji Otani
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Practical migration from JSP to Thymeleaf
Toshiki Iga
そんなトランザクションマネージャで大丈夫か?
takezoe
Ad
Viewers also liked
(6)
PPTX
インターフェイスによるオブジェクト指向設計
Akineko Shimizu
PDF
Iocコンテナについて
Akio Terayama
PDF
Testing Spring MVC and REST Web Applications
Sam Brannen
PDF
Testing Web Apps with Spring Framework
Dmytro Chyzhykov
PDF
(旧版) オープンソースライセンスの基礎と実務
Yutaka Kachi
PDF
良質なコードを高速に書くコツ
Shunji Konishi
インターフェイスによるオブジェクト指向設計
Akineko Shimizu
Iocコンテナについて
Akio Terayama
Testing Spring MVC and REST Web Applications
Sam Brannen
Testing Web Apps with Spring Framework
Dmytro Chyzhykov
(旧版) オープンソースライセンスの基礎と実務
Yutaka Kachi
良質なコードを高速に書くコツ
Shunji Konishi
Ad
Similar to Springを何となく使ってる人が抑えるべきポイント
(20)
PDF
Spring知っておきたい
Yuichi Hasegawa
PPTX
Azure Machine Leaning Workbench の使い方
Yoshitaka Seo
PDF
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
学 松崎
PDF
SpringBootの研修本で学んだこと
iPride Co., Ltd.
PDF
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
学 松崎
PPTX
スキトラ Spring + mybatis
小川 昌吾
PDF
Pivotal Trackerでアジャイルなプロジェクト管理
You&I
PDF
ruby、sinatraで作るfacebookアプリ
Toshiya Kurishima
PDF
co-meeting_meetup_vol1_利用事例紹介(newデイシス)
Satoshi Furuichi
PDF
最近のSpringFramework2013 #jjug #jsug #SpringFramework
Toshiaki Maki
PDF
CEDEC2015講演 チーム開発をスムーズにするために
Takafumi Ikeda
PDF
地図を捨ててコンパスを頼りに進め
Rakuten Group, Inc.
PDF
地図を捨ててコンパスを頼りに進め
Dai FUJIHARA
PDF
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
PDF
Azureを使って手軽にブラウザテストの自動化をはじめよう
Naoya Kojima
PDF
Selenium Antipatterns
Jumpei Miyata
PPTX
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
PDF
エッセンシャルCore springハンズオン
土岐 孝平
PDF
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
PPTX
Jsugプレゼン資料new
Wataru Kakizoe
Spring知っておきたい
Yuichi Hasegawa
Azure Machine Leaning Workbench の使い方
Yoshitaka Seo
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
学 松崎
SpringBootの研修本で学んだこと
iPride Co., Ltd.
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
学 松崎
スキトラ Spring + mybatis
小川 昌吾
Pivotal Trackerでアジャイルなプロジェクト管理
You&I
ruby、sinatraで作るfacebookアプリ
Toshiya Kurishima
co-meeting_meetup_vol1_利用事例紹介(newデイシス)
Satoshi Furuichi
最近のSpringFramework2013 #jjug #jsug #SpringFramework
Toshiaki Maki
CEDEC2015講演 チーム開発をスムーズにするために
Takafumi Ikeda
地図を捨ててコンパスを頼りに進め
Rakuten Group, Inc.
地図を捨ててコンパスを頼りに進め
Dai FUJIHARA
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
Azureを使って手軽にブラウザテストの自動化をはじめよう
Naoya Kojima
Selenium Antipatterns
Jumpei Miyata
Device Farm を使ったスマホアプリの自動テスト
Kenichi Tatsuhama
エッセンシャルCore springハンズオン
土岐 孝平
a-blogcsm な寺子屋 2 in Okazaki
Etsushi Ishii
Jsugプレゼン資料new
Wataru Kakizoe
More from 土岐 孝平
(8)
PDF
What's new in Spring Boot 2.6 ?
土岐 孝平
PDF
SpringベースのCloud Native Application
土岐 孝平
PDF
Spring fest2020 spring-security
土岐 孝平
PDF
Microserviceの今どきのインフラを探る
土岐 孝平
PDF
OpenID Connect入門
土岐 孝平
PDF
業務システムとマイクロサービス
土岐 孝平
PPT
試験にでるSpring
土岐 孝平
PPT
vFabricを触ろう
土岐 孝平
What's new in Spring Boot 2.6 ?
土岐 孝平
SpringベースのCloud Native Application
土岐 孝平
Spring fest2020 spring-security
土岐 孝平
Microserviceの今どきのインフラを探る
土岐 孝平
OpenID Connect入門
土岐 孝平
業務システムとマイクロサービス
土岐 孝平
試験にでるSpring
土岐 孝平
vFabricを触ろう
土岐 孝平
Springを何となく使ってる人が抑えるべきポイント
1.
1 Springを何となく使ってる人が 抑えるべきポイント 2016/10/05 日本Springユーザ会 土岐 孝平
2.
自己紹介 • 土岐 孝平 •
Springを使用したシステム開発の支援 • JavaやSpringの研修の講師 • 書籍の執筆 2
3.
発表の概要 • Springを言われた通り何となく使っていませんか? – 上手く動かないときの対応ができない –
応用が利かない – 面白くない • 主要なポイントを押さえて、開発を面白くしましょう 3
4.
主要なポイント • Beanのコンフィグレーション – コンフィグレーション方法の種類と使い分け •
DI・AOP – 使いどころ – 同じオブジェクトが使われている – インタフェースは必須じゃない • データアクセス – コネクション・トランザクション周りの仕組み • Spring MVC – 画面周りの処理の流れ • Spring Security – 認証・認可の仕組み • テスト – サーバを起動しなくてもBeanをテストできる • Spring Boot – Spring Bootが行っていること 4
5.
コンフィグレーションの方法 • コンフィグレーションの方法は3種類から選べます – XML –
アノテーション – JavaConfig 5 Beanのコンフィグレーションのコンフィグレーションのコンフィグレーションのコンフィグレーション DIコンテナコンテナコンテナコンテナ :Foo 結果結果結果結果は同じは同じは同じは同じ ※ DIコンテナが 管理するオブジェクトのことを Beanという
6.
それぞれの特徴 メリット デメリット XML ・プログラムとBean定義が分離、 一元的に記述(環境ごとに定義の 切替が容易) ・定義を変えても再ビルドが不要 (※) ・Beanが増えるとメンテが大変(リ ファクタリングとか) アノテー ション ・記述が楽 ・プログラムとBean定義が混在、 Bean定義が分散(定義の切替が困 難) Java Config ・プログラムとBean定義が分離、 一元的に記述(環境ごとに定義の 切替が容易) ・タイプセーフ ・Beanが増えるとメンテが大変(リ ファクタリングは楽) 6 Beanのコンフィグレーションのコンフィグレーションのコンフィグレーションのコンフィグレーション ※実際には、本番環境でXMLだけ変えてそのまま動かすことは危険なのと、VCSのXML と乖離するため、結局はVCSにコミットしてビルドしてテストした後にデプロイするはず
7.
一般的と思われる使い分け • 業務個別のBean(Controller、Service、Dao)はアノテーション – Beanの数が増えてもメンテナンスが楽 •
裏方のBeanはXMLもしくはJavaConfig – 環境ごとにBean定義を用意&一元化できて切替が容易 – サードパーティのクラスのBeanが多い 7 :Controller :Service :Dao :Transaction Manager :DataSource :View Resolver 本番用 テスト用 業務個別 裏方 インジェクション インジェクション Beanのコンフィグレーションのコンフィグレーションのコンフィグレーションのコンフィグレーション :Transaction Manager :DataSource :View Resolver
8.
DI・AOPの使いどころ • DI – 作成するクラスすべてをBeanで管理する訳ではない –
Controller、Service、Daoは、BeanにしてDIで紐づける • レイヤーの間で処理を挟み込んだり、依存オブジェクトの切り替えを容易にする – 処理の度にオブジェクトが生成され個別のフィールド値を設定するEntityやDTOは Beanにしない • AOP – レイヤーの間にAOPで共通処理を挟み込む • BeanにしかAOPできないという事情もある – 業務的な処理は基本的にAOPは使わない 8 :Controller :Service :Dao :DTO :Entity アプリで 生成 DI・・・・AOP AOPの処理
9.
同じオブジェクトが使われている 9 • リクエストの度にController・Service・Daoのオブジェクトが作成される訳 では無い – メモリの浪費が防げる。リクエスト間でデータ共有が可能(キャッシュなど) –
スレッドセーフにする必要がある :FooController :FooService :FooDaoリクエストB リクエストA リクエストB リクエストC DI・・・・AOP :FooController :FooService :FooDao :FooController :FooService :FooDao :FooController :FooService :FooDao
10.
インタフェースは必須じゃない • インタフェースを介さなくてもDIは可能 – AOPも可能 •
用途の例 – 各レイヤーの中の補助的なBean 10 Fooクラス Barクラス DIコンテナ Barオブジェクトを生成Fooオブジェクトを生成して、 Barオブジェクトをインジェクション Controller Service Dao Service Helper Controller Helper DI・・・・AOP
11.
コネクション・ トランザクション周りの仕組み • コネクションの取得・解放、トランザクションの開始・終了はSpringが行う – アプリで上記のコードは出てこない –
コネクションを引数で渡さなくてよい 11 foo :Controller :Proxy :Service :Dao :データアク セス機能 foo bar baz SQL ThreadLocal :Connection connect、、、、begin commit、、、、close データアクセスデータアクセスデータアクセスデータアクセス
12.
画面周りの処理の流れ 12 Controller Model Dispatcher Servlet Handler Mapping Handler Adapter View Resolver View ブラウザ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧⑨ Controllerを 特定 引数の値を 用意 Viewの形式・ ファイルを特定 全体の処理 を制御 • HttpServletを継承したDispacherServletが全体の 処理を制御している Spring
MVC
13.
認証・認可の仕組み • 認証と、URLの認可はServletFilterで行われている – DispacherServletに依存していない(Spring
MVCに依存しない) • 認可の主な対象は、URL・メソッド・画面描画の3種類 13 @PreAuthorize("hasRole('ROLE_AD MIN')") public void foo(){ ・・・ } 認証認証認証認証のServletFilter <authorize access="hasRole('ROLE_ADMIN')"> ・・・ </authorize> メソッドの認可認可認可認可の Proxy 画面描画の認可認可認可認可の カスタムタグ HttpSession/ThreadLocal SecurityContext ユーザ 権限 URLの認可認可認可認可の ServletFilter Spring Security <intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/> ・・・
14.
サーバを起動しなくてもBeanをテストできる • Springのテストサポート機能を使うと便利 14 ・記述が簡潔・記述が簡潔・記述が簡潔・記述が簡潔 ・さまざまな便利機能が利用できる・さまざまな便利機能が利用できる・さまざまな便利機能が利用できる・さまざまな便利機能が利用できる DIコンテナのキャッシュコンテナのキャッシュコンテナのキャッシュコンテナのキャッシュ テストメソッドのトランザクション制御テストメソッドのトランザクション制御テストメソッドのトランザクション制御テストメソッドのトランザクション制御 ・・・・・・・・・・・・ Spring Test
15.
Spring Bootが行っていること • 必要なJarファイルのダウンロードや、裏方のBeanのコンフィグレーション、組込 サーバ(Tomcat)の実行を自動で行ってくれる •
業務個別のBeanのプログラムの作りは、Bootを使っても使わなくても変わらない • 組込じゃないTomcatにデプロイすることも可能 15 :Controller :Service :Dao 裏方のBean :Tomcat 組込サーバ 必要なJarファイル Spring のjar JPAの jar JUnit のjar ・・・ Bootが用意 業務個別のBean ・・・ Spring Boot Tomcat のjar :Transaction Manager :DataSource :View Resolver 接続先などの プロパティ
16.
さいごに • 書籍を購入して、スライドの内容を再確認しましょう • おすすめの書籍 16 [改訂新版改訂新版改訂新版改訂新版]Spring入門入門入門入門
Spring徹底入門徹底入門徹底入門徹底入門
17.
17 ご清聴ありがとうございました
18.
18 ライセンスについて • JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生 作品)の複製・頒布・表示・上演を認めます。 • 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。 •
本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。
Download