達暉資訊 - 2014教育訓練 - spring ioc container
DESCRIPTION
介紹 Spring IoC Container 觀念。 透過案例介紹 DI 的用途,並且一步一步帶你降低程式的藕合性。TRANSCRIPT
![Page 1: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/1.jpg)
2014 教育訓練系列課程
Spring IoC Container
!達暉資訊 Allen Hsieh
![Page 2: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/2.jpg)
Inversion of Control!控制反轉
![Page 3: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/3.jpg)
Dependency Injection!依賴注射
![Page 4: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/4.jpg)
超好買線上購物商城
![Page 5: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/5.jpg)
![Page 6: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/6.jpg)
![Page 7: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/7.jpg)
STEP 2
加入/登入會員
STEP 1
選購商品
STEP 3
確認訂單
STEP 4
選擇付款方式
STEP 5
填寫資料
STEP 6
完成交易
![Page 8: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/8.jpg)
![Page 9: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/9.jpg)
![Page 10: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/10.jpg)
![Page 11: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/11.jpg)
![Page 12: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/12.jpg)
決議: 改用「簡訊」來通知客戶相關訊息
![Page 13: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/13.jpg)
![Page 14: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/14.jpg)
![Page 15: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/15.jpg)
![Page 16: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/16.jpg)
![Page 17: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/17.jpg)
決議:
Email & 簡訊都發送,並考慮未來 App
推播機制的可能性。
![Page 18: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/18.jpg)
你覺得應該要怎麼改?
![Page 19: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/19.jpg)
![Page 20: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/20.jpg)
1將程式中 會變化的部分 取出並封裝
![Page 21: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/21.jpg)
![Page 22: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/22.jpg)
![Page 23: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/23.jpg)
![Page 24: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/24.jpg)
Program to an !interface,!
not an implementation.
2
![Page 25: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/25.jpg)
![Page 26: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/26.jpg)
![Page 27: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/27.jpg)
![Page 28: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/28.jpg)
![Page 29: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/29.jpg)
![Page 30: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/30.jpg)
![Page 31: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/31.jpg)
![Page 32: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/32.jpg)
Spring Framework 介紹
![Page 33: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/33.jpg)
Spring IoC Container
Java Business Objects!(POJOs)
Configuration!(Metadata)
Bean A
Bean B
Bean C
Bean D
Bean E
Spring IoC Container
Application
getBean(“beanName”)
Bean Reference
![Page 34: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/34.jpg)
![Page 35: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/35.jpg)
Using the Container
![Page 36: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/36.jpg)
Bean 初始化方式
![Page 37: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/37.jpg)
Bean 初始化方式(續)
![Page 38: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/38.jpg)
Spring IoC Container!依賴注射方式
![Page 39: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/39.jpg)
透過建構子進行依賴注射
![Page 40: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/40.jpg)
透過 Setter 進行依賴注射
![Page 41: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/41.jpg)
Spring IoC Container!Bean Scopes
![Page 42: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/42.jpg)
Singleton Scope
![Page 43: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/43.jpg)
Prototype Scope
![Page 44: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/44.jpg)
Spring Bean Scope List
singleton
prototype
request
session
global session
每一個 Spring Container 會共用同一個 Bean Instance。 (預設值)
每一次 Request 都會建立一個新的 Bean Instance 來服務。
每一次 HTTP Request 共用同一個 Bean Instance。(Web Only)
每一個 HTTP Session 共用同一個 Bean Instance。(Web Only)
每一個 Global HTTP Session 共用同一個 Bean Instance。(Porlet Only)
![Page 45: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/45.jpg)
Annotation-based Configuration
![Page 46: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/46.jpg)
啟動 Annotation 功能
![Page 47: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/47.jpg)
@Required Annotation
![Page 48: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/48.jpg)
@Autowired Annotation
![Page 49: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/49.jpg)
@PostConstruct & @PreDestory Annotation
![Page 50: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/50.jpg)
Component 掃描
![Page 51: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/51.jpg)
影 片 分 享
![Page 52: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/52.jpg)
![Page 53: 達暉資訊 - 2014教育訓練 - Spring IoC Container](https://reader030.vdocuments.net/reader030/viewer/2022020922/5468c758af7959c23c8b50a9/html5/thumbnails/53.jpg)