手?jǐn)]golang spring ioc/aop 之1

手?jǐn)]golang spring ioc/aop 之1

緣起

最近閱讀 [Offer來了:Java面試核心知識點(diǎn)精講(框架篇)] (王磊 , 2020.6)
本系列筆記擬采用golang練習(xí)之

Spring

Spring基于J2EE技術(shù)實現(xiàn)了一套輕量級的Java Web Service系統(tǒng)應(yīng)用框架。
它有很多優(yōu)秀的特性,很多公司都選擇把Spring作為產(chǎn)品或項目的基礎(chǔ)開發(fā)架構(gòu)。

Spring的特性包括輕量、控制反轉(zhuǎn)(Inversion of Control, IoC)、面向容器、
面向切面(AspectOriented Programming, AOP)和框架靈活等。

源碼gitee地址:
https://gitee.com/ioly/learning.gooop

原文鏈接:
https://my.oschina.net/ioly

目標(biāo)

  • 使用golang高仿spring常用注解
    • Bean聲明:Component, Service, Controller
    • Bean注入:Autowried
    • 配置: Configuration, Bean, ComponentScan
    • AOP注解:Before, After, Around, PointCut

思路

  • golang的反射API比較弱,沒有動態(tài)代理,也沒有CGLib此等神器
  • 簡單點(diǎn)只能走AspectJ路線了:靜態(tài)編譯/autogen
  • Bean聲明:就是容器單例/多例模式的應(yīng)用
  • Bean注入:添加setter方法,供容器注入
  • 配置:添加setter方法,容器將系統(tǒng)配置注入
  • AOP注解:搜索正則匹配的函數(shù),在前后插入切面函數(shù)調(diào)用

(未完待續(xù))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容