仿写IOC&AOP流程
2020-06-15 11:33:16 0 举报
AOP&IOC仿写逻辑
作者其他创作
大纲/内容
Tomcat 所有的线程都是守护线程, 如果某一时刻所有的线程都是守护线程,那 JVM 会退出, 因此,需要为 tomcat 新建一个非守护线程来保持存活, 避免服务到这就 shutdown 了
将HandlerManager交给自定义的DispatcherServlet
实现效果:IOC:创建自己的beanFactory维护所有的bean,通过自己定义的注解@Component@Controller实现bean被扫描实例化注入容器,通过自己定义的注解@AutoWired实现属性注入AOP:ProxyDyna implements InvocationHandler代理类生成辅助类,生成jdk代理对象,
五.属性注入完毕将bean注册到beanFactory容器中
将@Controller注解的类的@RequestMapping方法解析为一个个的MappingHandler交给HandlerManager管理
三.判断方法是否被切片切到,如果是第一次进到这里,需要进行遍历解析所有的切面,在将切面方法织入被实例化的对象生成代理对象
就是实现InvocationHandler接口的类的invoke中前面执行method对应织面的before方法、执行method方法本身【如果有round切面此处将method方法本身传进round切面执行round织面方法】、执行method对应织面的before方法
二.遍历所有的classList中所有被@Component@Controller注解的类,如果容器中和早期暴露没有进行实例化
一.扫描启动类所在包下的所有class到classList
四.将还未进行属性注入的bean放到一个早期暴露的map缓存中用于解决可能存在的循环依赖,之后遍历bean的所有属性,如果属性有@AutoWired修饰再去第二步获取属性注入
实例化一个DispatcherServlet交由tomcat管理启动tomcat服务
解析所有扫描到的classList中的MappingHandler交给HandlerManager管理
0 条评论
回复 删除
下一页