達暉資訊 - 2014教育訓練 - spring ioc container

53
2014 教育訓練系列課程 Spring IoC Container 達暉資訊 Allen Hsieh

Upload: allen-hsieh

Post on 16-Nov-2014

947 views

Category:

Technology


9 download

DESCRIPTION

介紹 Spring IoC Container 觀念。 透過案例介紹 DI 的用途,並且一步一步帶你降低程式的藕合性。

TRANSCRIPT

Page 1: 達暉資訊 - 2014教育訓練 - Spring IoC Container

2014 教育訓練系列課程

Spring IoC Container

!達暉資訊 Allen Hsieh

Page 2: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Inversion of Control!控制反轉

Page 3: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Dependency Injection!依賴注射

Page 4: 達暉資訊 - 2014教育訓練 - Spring IoC Container

超好買線上購物商城

Page 5: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 6: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 7: 達暉資訊 - 2014教育訓練 - Spring IoC Container

STEP 2

加入/登入會員

STEP 1

選購商品

STEP 3

確認訂單

STEP 4

選擇付款方式

STEP 5

填寫資料

STEP 6

完成交易

Page 8: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 9: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 10: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 11: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 12: 達暉資訊 - 2014教育訓練 - Spring IoC Container

決議: 改用「簡訊」來通知客戶相關訊息

Page 13: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 14: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 15: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 16: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 17: 達暉資訊 - 2014教育訓練 - Spring IoC Container

決議:

Email & 簡訊都發送,並考慮未來 App

推播機制的可能性。

Page 18: 達暉資訊 - 2014教育訓練 - Spring IoC Container

你覺得應該要怎麼改?

Page 19: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 20: 達暉資訊 - 2014教育訓練 - Spring IoC Container

1將程式中 會變化的部分 取出並封裝

Page 21: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 22: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 23: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 24: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Program to an !interface,!

not an implementation.

2

Page 25: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 26: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 27: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 28: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 29: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 30: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 31: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 32: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Spring Framework 介紹

Page 33: 達暉資訊 - 2014教育訓練 - Spring IoC Container

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
Page 35: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Using the Container

Page 36: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Bean 初始化方式

Page 37: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Bean 初始化方式(續)

Page 38: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Spring IoC Container!依賴注射方式

Page 39: 達暉資訊 - 2014教育訓練 - Spring IoC Container

透過建構子進行依賴注射

Page 40: 達暉資訊 - 2014教育訓練 - Spring IoC Container

透過 Setter 進行依賴注射

Page 41: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Spring IoC Container!Bean Scopes

Page 42: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Singleton Scope

Page 43: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Prototype Scope

Page 44: 達暉資訊 - 2014教育訓練 - Spring IoC Container

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

Annotation-based Configuration

Page 46: 達暉資訊 - 2014教育訓練 - Spring IoC Container

啟動 Annotation 功能

Page 47: 達暉資訊 - 2014教育訓練 - Spring IoC Container

@Required Annotation

Page 48: 達暉資訊 - 2014教育訓練 - Spring IoC Container

@Autowired Annotation

Page 49: 達暉資訊 - 2014教育訓練 - Spring IoC Container

@PostConstruct & @PreDestory Annotation

Page 50: 達暉資訊 - 2014教育訓練 - Spring IoC Container

Component 掃描

Page 51: 達暉資訊 - 2014教育訓練 - Spring IoC Container

影 片 分 享

Page 52: 達暉資訊 - 2014教育訓練 - Spring IoC Container
Page 53: 達暉資訊 - 2014教育訓練 - Spring IoC Container