12 2022 档案
摘要:Spring源码-16-容器refresh之registerBeanPostProcessors方法 // AbstractApplicationContext.java /** * 5 Bean实例化初始化之前将后置处理器注册到容器中 * 后置处理器的职责 * - BeanDefinition都已
阅读全文
摘要:Spring源码-14-Bean后置处理器ImportAwarePostProcessor todo
阅读全文
摘要:Spring源码-13-full行配置类增强
阅读全文
摘要:Spring源码-11-后置处理器ConfigurationClassPostProcessor Bean工厂后置处理器 一 类图 二 Demo // MyTest00.java public class MyTest00 { public static void main(String[] arg
阅读全文
摘要:Spring源码-12-配置类解析器ConfigurationClassParser 解析配置类 // ConfigurationClassParser.java public void parse(Set<BeanDefinitionHolder> configCandidates) { for
阅读全文
摘要:Spring源码-10-Bean工厂后置处理器 提供了对Bean工厂中BeanDefinition的修改能力 一 类图 交互对象都是BeanDefinition,只是入口介质不同 BeanFactoryPostProcessor是通过ConfigurableListableBeanFactory实例
阅读全文
摘要:Spring源码-09-Bean工厂之getBean方法 Bean实例 一 getBean方法 // AbstractBeanFactory.java @Override public Object getBean(String name) throws BeansException { retur
阅读全文
摘要:Spring源码-08-容器refresh之invokeBeanFactoryPostProcessors方法 ConfigurationClassPostProcessor作用的时机 扫描注册用户BeanDefinition到Bean工厂 一 Bean工厂后置处理器 // AbstractAppl
阅读全文
摘要:Spring源码-05-容器refresh 一 refresh // AbstractApplicationContext.java @Override public void refresh() throws BeansException, IllegalStateException { sync
阅读全文
摘要:Spring源码-06-BeanDefinition Bean定义信息 RootBeanDefinition def = new RootBeanDefinition(ConfigurationClassPostProcessor.class); def.setSource(source); bea
阅读全文
摘要:Spring源码-07-Bean工厂BeanFactory 实现在DefaultListableRegistry 一 类图 二 BeanDefinition注册Bean工厂 1 源码 // DefaultListableBeanFactory.java @Override public void r
阅读全文
摘要:Spring源码-04-注解Bean读取器 AnnotatedBeanDefinitionReader 一 构造方法 public AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry, Environment environme
阅读全文
摘要:Spring源码-03-容器创建 注解Bean方式 public class AnnotationCtxMain02 { public static void main(String[] args) { new AnnotationConfigApplicationContext(MyCfg02.c
阅读全文
摘要:Spring源码-02-Bean容器 一 类关系 二 宏观视角
阅读全文
摘要:Spring源码-01-调试代码 Spring源码工程下新建模块用于调试源码 一 新建模块 名称以spring为前缀 二 引入依赖 plugins { id 'java' } group 'org.springframework' version '6.0.3-SNAPSHOT' repositor
阅读全文
摘要:一 接口声明 @SPI(FailoverCluster.NAME) public interface Cluster { /** * Merge the directory invokers to a virtual invoker. * * @param <T> * @param director
阅读全文
摘要:一 入口 public static void main(String[] args) { // 引用远程服务 此实例很重 封装了与注册中心的连接以及与提供者的连接 ReferenceConfig<DemoService> reference = new ReferenceConfig<DemoSe
阅读全文