Spring一些基本概念
Spring一些基本概念
輕量級
?
組件小,庫小
Spring
在某種意義上是
EJB
的替代品,她是一種輕量級的容器。用過
EJB
的人都知道
EJB
很復雜,為了一個簡單的功能你不得不編寫多個
Java
文件和部署文件,他是一種重量級的容器。
非入侵式
重量級容器是一種入侵式的,也就是說你要用
EJB
提供的功能就必須在你的代碼中體現
出來你使用的是
EJB
,比如繼承一個接口,聲明一個成員變量。這樣就把你的代碼綁定在
EJB
技術上了
相對而言“輕量級”就是非入侵式的,用
Spring
開發的系統中的類不需
要依賴
Spring
中的類,不需要容器支持(當然
Spring
本身是一個容器),而且
Spring
的大小和運行開支都很微量
容器
為容器提供一個運行環境,
IOC/DI
IoC
的全稱是
Inversion of Control
,中文翻譯反向控制或者逆向控制
反轉控制,另一個名字依賴注入,
控制權的轉移即是所謂的反轉。
依賴注入
為調用者對象設置被調用者對象
接口注入
構造注入
設置注入 (set/get)
AOP
AOP
全稱是
Aspect-Oriented Programming
,中文翻譯是面向方面的編程或者面向切面的編程。
你應該熟悉面向過程的編程,面向對象的編程,但是面向切面的編程你也許是第一次聽說
POJO
我所看到過的
POJO
全稱有兩個,
Plain Ordinary Java Object
,
Plain Old Java
Object
,兩個差不多,意思都是普通的
Java
類,所以也不用去管誰對誰錯。
POJO
可以看做是簡單的
JavaBean
(具有一系列
Getter
,
Setter
方法的類)。嚴格區分
這里面的概念沒有太大意義,了解一下就行。
應用
Spring
中的切面
Spring
生來支持
AOP
,首先來看幾個概念:
1、??
切面(
Aspect
):
切面是系統中抽象出來的的某一個功能模塊,上文已經有過介紹,這里不再多說。
2
、 通知(
Advice
)
:
通知是切面的具體實現。也就是說你的切面要完成什么功能,具體怎么做就是在通知里面完成的。這個名稱似乎有點讓人費解,等后面看了
代碼就明白了。
3
切入點(
Pointcut
):
切入點定義了通知應該應用到系統的哪些地方。
Spring
只能控制到方法(有的
AOP
框架可以控制到屬性),也就是說你能在方法調用之前或者之后選擇切入,執行額外的操作。
2、??
目標對象(
Target
):
目標對象是被通知的對象。它可以是任何類,包括你自己
編寫的或者第三方類。有了
AOP
以后,目標對象就只需要關注自己的核心業務,其他的功能,比如日志,就由
AOP
框架支持完成。
3、???
代理(
Proxy
)
:
簡單的講,代理就是將通知??? 應用到目標對象后產生的對象。
Spring
在運行時會給每個目標對象生成一個代理對象,以后所有對目標對象的操作都
會通過代理對象來完成。只有這樣通知才可能切入目標對象。對系統的其他部
分來說,這個過程是透明的,也就是看起來跟沒用代理一樣。
“連接點(
Jointpoint
)??
posted on 2009-03-29 11:47 luofeng225 閱讀(210) 評論(0) 編輯 收藏 所屬分類: Spring