Solon 框架啓動爲什麼特別快?

思來想去!可能與 Solon 容器的獨立設計有一定關係。

1、Solon 註解容器的運行特點

  • 有什麼註解要處理的(註解能力被規範成了四種),提前註冊登記
  • 全局只掃描一次,並在掃描過程中統一處理註解相關
  • 掃描注入時,目標有即同步注入,沒有時則訂閱注入
  • 自動代理。即自動發現AOP需求,並按需動態代理

2、內部結構示意圖

在這裏插入圖片描述

3、支持四種註解能力的處理對象:

對象 說明
BeanBuilder 構建器(比如:@Component 註解,如果沒有註冊此註解的構建器,則會無視)
BeanInjector 注入器(比如:@Inject、@Db、@CloudConfig、@VaultInject)
BeanExtractor 提取器(比如:@Scheduled、@CloudJob)
BeanInterceptor 攔截器(比如:@Tran、@Cache)

Solon Aop 的具體表象:即爲註解處理,原則上需要提前埋好切點(不支持表達式 Aop)。開發及應用可見《四種自定義註解開發彙總》

4、關於自動代理

當一個組件(即 @Component 註解的類),其函數上的註解有對應的攔截處理時(即有 AOP 的需求)。此組件會啓用動態代理。關於代理,可參考《動態代理的本質》。v2.5.3 後支持

5、容器處理的補充

附:開源倉庫

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