Spring IOC AOP

Spring的初衷:
1)J2EE開始應該更加簡單。
2)使用接口而不是使用類,是更好的編程習慣。Spring將使用接口的複雜度幾乎下降到了零。
3)爲JavaBean提供了一個更好的應用配置框架。
4)更多地強調面向對象的設計,而不是現行的技術如J2EE。
5)儘可能減小沒必要要的異常捕捉。
6)使應用程序更加容易測試。
Spring的目標:
1)能夠使人方便愉快的使用Spring。
2)應用程序代碼並不依賴於Spring APIs。
3)Spring不和現有的解決方案競爭,而是致力於將它們融合在一塊兒。
Spring的基本組成:
1)最完善的輕量級核心框架。
2)通用的事務管理抽象層。
3)JDBC抽象層。
4)集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。
5)AOP功能。
6)靈活的MVC Web應用框架。
優勢
◆J2EE應該更加容易使用。
◆面向對象的設計比任何實現技術(好比J2EE)都重要。
◆面向接口編程,而不是針對類編程。Spring將使用接口的複雜度下降到零。(面向接口編程有哪些複雜度?)
◆代碼應該易於測試。Spring框架會幫助你,使代碼的測試更加簡單。
◆JavaBean提供了應用程序配置的最好方法。
◆在Java中,已檢查異常(Checked exception)被過分使用。框架不該該迫使你捕獲不能恢復的異常。

Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架
控制反轉
Spring經過一種稱做控制反轉(IoC)的技術促進了鬆耦合。當應用了IoC,一個對象依賴的其它對象會經過被動的方式傳遞進來,而不是這個對象本身建立或者查找依賴對象。你能夠認爲IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它
IoC,直觀地講,就是容器控制程序之間的關係,而非傳統實現中,由程序代碼直接操控。這也就是所謂「控制反轉」的概念所在。控制權由應用代碼中轉到了外部容器,控制權的轉移是所謂反轉。IoC還有另一個名字——「依賴注入(Dependency Injection)」。從名字上理解,所謂依賴注入,即組件之間的依賴關係由容器在運行期決定,形象地說,即由容器動態地將某種依賴關係注入到組件之中。

面向切面
Spring提供了面向切面編程的豐富支持,容許經過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該作的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支持
面向切面編程(簡稱AOP )的目標:
    把橫切關注點從業務邏輯中分離,獨立模塊化
    在不改變現有代碼的前提下,動態的添加功能
2).Spring 框架中如何使用AOP ?
       方法一:Spring 經典的AOP 實現
            實現MethodInceptor 接口,在其invoke() 方法中定義行爲(Advice )
            使用ProxyFactoryBean 生成代理
3)切面方法中如何得到切點信息?
        around 對方法要求有參數ProceedingJoinPoint ,因此能夠很容易的得到切點對象的相關信息。那麼after, before 等其餘的切面類型對方法沒有這樣的要求,該怎麼得到切點信息呢?
        對於這些方法,能夠直接爲其添加JoinPoint 參數,這樣就能夠得到
        方法對象,參數列表,目標對象,代理對象 的信息。
        返回值和異常則能夠直接接受,而後在配置中添加屬性便可。例如:
        方法簽名爲:public void after(JoinPoint jp, Object res, Exception e)
    配置信息爲:<aop:after-returning returning="res" …> 則在方法中能夠直接使用切點方法返回的對象res ;一樣 < aop:after-throwing throwing="e"…> ,在方法中也能夠直接接收到異常對象。

容器
Spring包含並管理應用對象的配置和生命週期,在這個意義上它是一種容器,你能夠配置你的每一個bean如何被建立——基於一個可配置原型(prototype),你的bean能夠建立一個單獨的實例或者每次須要時都生成一個新的實例——以及它們是如何相互關聯的。然而,Spring不該該被混同於傳統的重量級的EJB容器,它們常常是龐大與笨重的,難以使用
核心容器
這是Spring框架最基礎的部分,它提供了依賴注入(DependencyInjection)特徵來實現容器對Bean的管理。這裏最基本的概念是BeanFactory,它是任何Spring應用的核心。BeanFactory是工廠模式的一個實現,它使用IoC將應用配置和依賴說明從實際的應用代碼中分離出來

Spring帶來了複雜的J2EE開發的春天。它的核心是輕量級的IoC容器,它的目標是爲J2EE應用提供了全方位的整合框架,在Spring框架下實現多個子框架的組合,這些子框架之間能夠彼此獨立,也可使用其它的框架方案加以代替,Spring但願爲企業應用提供一站式(one-stopshop)的解決方案。編程

相關文章
相關標籤/搜索