Spring啊,Spring,簡單的面試知識點,過一遍吧

我是方圓
願你三冬暖,願你春不寒

1. SpringIOC圖解

在這裏插入圖片描述

2. SpringIOC支持的功能

  • 依賴注入
  • 自動裝配
  • 依賴檢查
  • 支持集合
  • 指定初始化方法和銷燬方法
  • 支持回調方法

3. SpringIOC容器的核心接口

3.1 簡要了解

  • BeanDefinition:用來描述Bean定義
  • BeanDefinitionRegistry:提供向IOC容器註冊BeanDefinition對象的方法

3.2 主要了解

  1. BeanFactory
    在這裏插入圖片描述
    BeanFactory是Spring最核心的接口,是Spring框架的基礎設施,面向的是Spring

  2. ApplicationContext
    在這裏插入圖片描述
    Application實現多個接口,面向的是使用Spring框架的開發者

4. IOC中getBean方法的代碼邏輯

  • 轉換BeanName
  • 從緩存中加載實例
  • 實例化Bean
  • 檢測parentBeanFactory
  • 初始化依賴的Bean
  • 創建Bean

5. SpringBean的作用域

  • Singleton:Spring的默認作用域,容器裏擁有唯一的Bean實例
  • Prototype:針對每個getBean的請求,容器都會創建一個新的Bean實例
  • request:會爲每一個Http請求創建一個Bean實例
  • session:會爲每一個Session創建一個Bean實例
  • globalSession:回味每個全局Http Session創建一個Bean實例

6. SpringBean的生命週期

  1. 創建過程
    在這裏插入圖片描述
  2. 銷燬過程
  • 若實現了DisposableBean接口,則會調用destory方法
  • 若配置了destry-method屬性,則會調用其配置的銷燬方法

7. SpringAOP(面向切面編程,動態代理織入)

  • 通用化功能代碼的實現,對應的就是所謂的切面
  • 業務功能代碼和切面代碼分開後,架構將變得高內聚、低耦合
  • 確保功能的完整性,切面最終會被合併到業務中

7.1 Advice的種類

  • Before:前置通知
  • AfterReturning:後置通知
  • AfterThrowing:異常通知
  • After:最終通知
  • Around:環繞通知

7.2 AOP的實現:JdkProxy和Cglib

  • 由AOP ProxyFactory根據Advised Support對象的配置來決定
  • 如果目標類是接口,則使用JdkProxy,否則使用Cglib

7.2.1 JdkProxy

  1. JDK Proxy核心是InvocationHandler接口和Proxy類
  2. JDK Proxy通過Java內置的反射機制實現
  3. 反射機制在生成類的過程中比較高效

7.2.2 Cglib

  1. Cglib以繼承的方式動態生成目標類的代理
  2. Cglib藉助ASM機制實現
  3. ASM在生成類後的執行過程比較高效

7.3 代理模式詳解

大家可以看我之前寫過一篇博客
最好理解的代理模式


這篇文章到這裏就完了,感謝您的閱讀,筆者水平有限,歡迎大家賜教

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章