1. 程式人生 > >Spring重要知識點整理

Spring重要知識點整理

actor ise 核心部分 依賴註入 邏輯 ima ntp app pla

一、IOC(Inversion of Control):控制反轉

  (1)Spring Core最核心部分

  (2)需要先了解依賴註入(Denpendency Injection)/把底層類作為參數傳遞給上層類,實現上層對下層的“控制”

  1.IOC、DI、DL的關系:

        技術分享圖片  2.IOC容器的優勢

    (1)避免在各處使用new來創建類,並且可以做到統一維護

    (2)創建實例的時候不需要了解其中的細節

  3.Spring IOC支持的功能

    (1)依賴註入  (2)依賴檢查  (3)自動裝配  (4)支持集合

    (5)制定初始化方法和銷毀方法  (6)支持回調方法

二、Spring IOC 容器的核心接口:

  1.BeanFactory

    (1)提供IOC的配置機制

    (2)包含Bean的各種定義,便於實例化Bean

    (3)建立Bean之間的依賴關系

    (4)Bean生命周期的控制

  2.ApplicationContext的功能(繼承多個接口)

    (1)Bean Factory:能夠管理、裝配Bean

    (2)ResourcePatternResolver:能夠加載資源文件

    (3)MessageSource:能夠實現國際化等功能

    (4)ApplicationEventPublisher:註冊監聽器,實現監聽機制

  3.getBean方法的代碼邏輯

    (1)轉化beanName

    (2)從緩存中加載實例

    (3)實例化Bean

    (4)檢測parentBeanFactory

    (5)初始化依賴Bean

    (6)創建Bean

  4.Spring Bean的作用域

    (1)Singleton:Spring默認作用域,容器裏擁有唯一的Bean實例

    (2)prototype:針對每個getBean請求,容器都會創建一個Bean實例

    (3)request:為每個Http請求創建一個Bean實例

    (4)session:為每個Session創建一個Bean實例

    (5)globalSession:會為每個全局Http Session創建一個Bean實例,該作用域僅對Portlet有效

  5.Spring Bean 的生命周期

    (1)創建過程:

    (2)銷毀過程:a.若實現了DisposableBean接口,則會調用destroy方法

            b.若配置了destroy-method屬性,則會調用其配置的銷毀方法

三、AOP

  1.AOP的三種織入方式

    (1)編譯時織入:需要特殊的編譯器,如AspectJ

    (2)類加載時織入:需要特殊的編譯器,如AspectJ和Aspectwerkz

    (3)運行時織入:Spring采用的方式,通過動態代理的方式

  2.Advice的種類

    (1)前置通知(Before)  (2)後置通知(AfterReturning)  (3)異常通知(AfterThrowing)

    (4)最終通知(After)  (5)環繞通知(Around)

  3.AOP的實現:JdkProxy和Cglib

    (1)由AopProxyFactory根據AdvisedSupport對象的配置來決定

    (2)默認策略如果目標類是接口,則用JDKProxy來實現,否則用後者

    (3)JDKProxy的核心:InvocationHandler接口和Proxy類

    (4)Cglib:以繼承方式動態生成目標類的代理

    JDKProxy:通過java的內部反射機制實現(反射機制在生成類的過程中比較高效)

    Cglib:借助ASM實現(ASM在生成類之後的執行過程中比較高效)

四、Spring事務

  (1)ACID

  (2)隔離級別

  (3)事務傳播

    

    

      

Spring重要知識點整理