手写Spring

1、目录

  • 手写Spring
        • 1、目录
        • 2、说明
        • 3、初始化流程
        • 4、扫描文件
        • 5、对象实例化
        • 6、aop代理对象生成
        • 7、url与方法关联
        • 8、变量注入
        • 9、HttpServlet

2、说明

此项目主要实现了spring的IOC和AOP功能。采用注解的方式实现,xml的方式没有实现。

3、初始化流程

初始化流程共有五个:读取注解,对象实例化,aop代理对象生成,url与方法关联,变量注入。

4、扫描文件

5、对象实例化

6、aop代理对象生成

代理对象的优先级:先生成方法级别的代理,再生成类级别的代理。
执行起来表现为:先执行类级别的代理,再执行方法级别的代理。

7、url与方法关联

8、变量注入

9、HttpServlet

继承HttpServlet,然后在doGet、doPost方法中通过url获取到方法后,反射执行即可。一个简易的spring框架即完成。
附上github源码:https://github/codeljy/myspring

更多推荐

手写一个简单的Spring框架