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

Preview:

DESCRIPTION

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

Citation preview

2014 教育訓練系列課程

Spring IoC Container

!達暉資訊 Allen Hsieh

Inversion of Control!控制反轉

Dependency Injection!依賴注射

超好買線上購物商城

STEP 2

加入/登入會員

STEP 1

選購商品

STEP 3

確認訂單

STEP 4

選擇付款方式

STEP 5

填寫資料

STEP 6

完成交易

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

決議:

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

推播機制的可能性。

你覺得應該要怎麼改?

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

Program to an !interface,!

not an implementation.

2

Spring Framework 介紹

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

Using the Container

Bean 初始化方式

Bean 初始化方式(續)

Spring IoC Container!依賴注射方式

透過建構子進行依賴注射

透過 Setter 進行依賴注射

Spring IoC Container!Bean Scopes

Singleton Scope

Prototype Scope

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)

Annotation-based Configuration

啟動 Annotation 功能

@Required Annotation

@Autowired Annotation

@PostConstruct & @PreDestory Annotation

Component 掃描

影 片 分 享