源码研读
文章平均质量分 61
源码研读
qq_33987908
这个作者很懒,什么都没留下…
展开
-
Spring AOP多Advisor问题
答:通过@Order或者@PriorityOrdered注解来定义的,value越小优先级越高,而且@PriorityOrdered的优先级总是比@Order高。比较器就是AnnotationAwareOrderComparator,比较方法是compare。如果一个targetClass实现了多个接口,那么生成proxy时会根据哪个接口来生成?如果某个target有多个advisor,如何定义其顺序?原创 2023-09-19 04:12:17 · 207 阅读 · 0 评论 -
Spring 各种Aware注入是如何实现的
ApplicationContextAwareProcessor主要就是执行各种Aware的注入逻辑。1、 先判断当前的bean是否实现了7个Aware接口中的其中一个,若都未实现则直接返回;2、 调用InvokeAwareInterfaces方法来执行具体的aware注入逻辑;原创 2023-09-19 03:35:46 · 59 阅读 · 0 评论 -
Spring AOP proxy生成流程源码解读
进入initializeBean方法里,走到applyBeanPostProcessorsAfterInitialization方法里,该方法就是为该bean执行每个BeanPostProcessor的postProcessAfterInitialization方法的。先在AbstractBeanFactory的doGetBean方法里打上断点,并给断点加上condition beanName.equals(“beProxied”),这里的beProxied是我的被代理的bean的beanName。原创 2023-09-19 03:34:07 · 51 阅读 · 0 评论 -
Spring DI解析_2
接下来看看CommonAnnotationBeanPostProcessor的postProcessProperties方法里的注入逻辑,第一步先调用findResourceMetadata方法从缓存injectionMetadataCache中获取待DI的Bean的的注入元信息metadata(扫描待注入点并加入到缓存中的逻辑请看《》),metadata里包含有该Bean待被注入的点的信息,比如某个Field的访问类型,对象类型,field name等。后续就是IOC容器生成注入的Bean的逻辑的。原创 2023-09-19 03:26:16 · 50 阅读 · 0 评论 -
Spring DI解析_1
applyMergedBeanDefinitionPostProcessors方法中会调用MergedBeanDefinitionPostProcessor接口的实现类的postProcessMergedBeanDefinition方法。本篇主要解析IOC容器是如何扫描被注入的Bean的待注入点的。扫描Method的逻辑和扫描Field的逻辑类似,不再赘述。原创 2023-09-19 03:21:37 · 64 阅读 · 0 评论