手撸golang spring ioc/aop 之1

缘起

最近浏览 [Offer来了:Java面试外围知识点精讲(框架篇)] (王磊 , 2020.6)
本系列笔记拟采纳golang练习之

Spring

Spring基于J2EE技术实现了一套轻量级的Java Web Service零碎利用框架。它有很多优良的个性,很多公司都抉择把Spring作为产品或我的项目的根底开发架构。Spring的个性包含轻量、管制反转(Inversion of Control, IoC)、面向容器、面向切面(AspectOriented Programming, AOP)和框架灵便等。源码gitee地址:https://gitee.com/ioly/learning.gooop原文链接:https://my.oschina.net/ioly

指标

  • 应用golang高仿spring罕用注解

    • Bean申明:Component, Service, Controller
    • Bean注入:Autowried
    • 配置: Configuration, Bean, ComponentScan
    • AOP注解:Before, After, Around, PointCut

思路

  • golang的反射API比拟弱,没有动静代理,也没有CGLib此等神器
  • 简略点只能走AspectJ路线了:动态编译/autogen
  • Bean申明:就是容器单例/多例模式的利用
  • Bean注入:增加setter办法,供容器注入
  • 配置:增加setter办法,容器将系统配置注入
  • AOP注解:搜寻正则匹配的函数,在前后插入切面函数调用

(未完待续)