🔥 Java "new" application development Framework: Restrained, concise, EFFICIENT, OPEN, ECOLOGICAL!! 300% higher concurrency 50% memory savings Startup is 10 times faster. Packing 90% smaller; Compatible with java8 ~ java22.
2.22k
stars
221
forks
source link
修改一下注释错误 #244
Closed
CY-1 closed 6 months ago
能顺便问一问作者的aop的实现逻辑吗?我最近在学习这方面知识 希望大佬能指出我梳理的流程的错误
目前我的理解是: 1.当我们要把class要创建被放到context容器中时,会先去创建BeanWrap,然后利用BeanWrap去创建目标类。 2.利用BeanWrap创建目标类时,会遍历当前类的所有方法,如果当前类有任何一个方法被注解修饰,并且容器中有注解对应的 BeanInterceptors那么就需要创建BeanInvocationHandler。 3.创建BeanInvocationHandler放到BeanWrap的raw中。最后把BeanWrap放到context容器中 4.BeanWrap放入到容器中后 就可以获取class 5.获取class时 会获取到BeanWrap 然后通过BeanWrap的raw字段拿到BeanInvocationHandler并且返回。 6.当我们调用被增强的方法时,是调用BeanInvocationHandler的invoke方法,在invoke方法会获取MethodWrap,并且执行invokeByAspect方法 7.invokeByAspect方法会调用原本想要加入的功能和函数原本的功能等。