手撸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注解:搜索正则匹配的函数,在前后插入切面函数调用
(未完待续)
有疑问加站长微信联系(非本文作者)