摘要:
1. 运行时数据区域 注意JVM运行时数据区域与Java内存模型的区别 JVM 运行时数据区域:JVM 所管理的内存划分 Java内存模型:屏蔽底层硬件和操作系统的区别,在语言级抽象java的内存访问,使得在不同的环境中java一致的内存访问效果 2. 程序计数器 Program Counter R 阅读全文
摘要:
1. ImportBeanDefinitionRegistrar // 和 DeferredImportSelectors 类似, 也可以自己注册 BeanDefinition // 不过这个接口可以继承 EnvironmentAware、BeanFactoryAware、BeanClassLoad 阅读全文
摘要:
1. 使用的地方 是一个 ConfigurationClassParser 的成员变量,主要是用于判断循环导入? 2. ImportStack 3. 第一处使用 ConfigurationClassParser#processMemberClasses 这个是处理一个类的内部类的,包括静态内部类和实 阅读全文
摘要:
1. DeferredImportSelector 接口 具体注释待续。 类头注释的英文翻译:ImportSelector的一个变体,在处理完所有@Configuration bean之后运行。当所选导入为@Conditional时,这种类型的选择器特别有用。 实现也可以扩展org.springfr 阅读全文
摘要:
处理逻辑在 org.springframework.context.annotation.ConfigurationClassParser#processImports。 暂时略其子接口 DeferredImportSelector 1. ImportSelector 接口 selectImport 阅读全文
摘要:
1. 解析逻辑 具体逻辑在 org.springframework.context.annotation.ConfigurationClassParser#processImports 中,下面的 importCandidates 即为 @Import 导入的类的列表。 最后的一个 else 即为普 阅读全文
摘要:
1. 概述 同样是 org.springframework.context.annotation.ConfigurationClassParser#doProcessConfigurationClass 开始 org.springframework.context.annotation.Config 阅读全文
摘要:
1. 概述 配置类是 ConfigurationClassPostProcessor 这个 BeanFactoryPostProcessor(BeanDefinitionRefistryPostProcessor)处理的,内部实际是使用了一个 ConfigurationClassParser进行具体 阅读全文
摘要:
《代码整洁之道》很有收获 阅读全文
摘要:
1. 概述 当使用 spring-context 搭建简单 demo 时,调用 BeanDefinitionRegistryPostProcessor 第一个就是 ConfigurationClassPostProcessor 同时注意到它干了什么,它 getBean 立即将其转换为 Bean / 阅读全文