Spring容器编译过程版权声明

原创
小哥 2年前 (2022-12-26) 阅读数 50 #大杂烩

一、Spring 容器高级视图

Spring 阅读启动时提供的应用程序。Bean配置信息,和Spring容器生成相应的Bean配置注册表,然后从此注册表实例化Bean,装配号Bean为上层应用程序提供就绪的运行环境。

2.内部工作机制

该图描述了Spring容器从加载配置文件到创建完整的Bean操作流程:

1、ResourceLoader从存储介质加载Spring配置信息和使用Resource表示此配置文件的资源;

2、BeanDefinitionReader读取Resource然后解析配置文件。每个配置文件分析为BeanDefinition对象并保存到BeanDefinitionRegistry中;

3.容器扫描BeanDefinitionRegistry中的BeanDefinition,使用Java反射机制自动识别Bean工厂后处理后处理装置(已实现BeanFactoryPostProcessor接口)的Bean然后给这些打电话Bean工厂后处理器对BeanDefinitionRegistry中的BeanDefinition处理。主要完成以下两项任务:

1)用于占位符的使用。元素标记被解析以获得最终的配置值,这意味着一些半成品BeanDefinition对物体进行加工,得到成品。BeanDefinition对象;

2)对BeanDefinitionRegistry中的BeanDefinition扫描Java反射机制查找所有属性编辑器。Bean(实现java.beans.PropertyEditor接口的Bean),并自动注册它们Spring在容器的属性编辑器注册表中(PropertyEditorRegistry);

4.Spring容器从BeanDefinitionRegistry删除已处理的BeanDefinition,并调用InstantiationStrategy着手进行Bean工作实例化;

5.在实例化中Bean时,Spring容器使用BeanWrapper对Bean对于封装,BeanWrapper提供了很多Java反射机制操作Bean方法,它将结合Bean的BeanDefinition以及容器中的属性编辑器,完成Bean物业的设置工作;

6。使用容器中注册的。Bean后处理器(机具BeanPostProcessor接口的Bean)已完成的属性设置工作Bean后续处理以直接组装准备好的Bean。

Spring这个容器确实是一个精密设计的机器,里面有许多部件和装置。Spring聪明的是,它使用许多接口为所有设备绘制蓝图,并很好地构建它们。Spring骨架,然后通过继承体系层层演绎,不断丰富,最后让。Spring成为一个完整的血肉框架。所以检查一下Spring框架的源代码,有两个明显可见的脉络:

1)接口层描述了容器的重要组件以及组件之间的协作关系;

2)继承系统逐渐实现组件的功能。

界面层轮廓清晰Spring框架的高级功能,框架的背景已经准备就绪。通过对接口层的抽象描述Spring您可以自己提供特定的实现,任何第三方组织也可以提供不同的实现, 可以说Spring完美的接口层确保了框架的可扩展性。垂直继承系统的逐步扩展逐步实现了框架的功能。这种实现方案确保了框架的功能不会在某些类上累积,导致过度的代码逻辑负载,并且框架的复杂性被完美分解。

Spring组件可根据其角色分为两类:

1)材料组件:Resource、BeanDefinition、PropertyEditor还有决赛Bean它们是在加工过程中加工和消耗的部件,就像在流水线上加工的材料一样;

22) 加工设备组件:ResourceLoader、BeanDefinitionReader、BeanFactoryPostProcessor、InstantiationStrategy以及BeanWrapper这样的部件就像装配线不同环节的加工设备,用于加工材料部件。

摘录于《Spring 3.x 企业应用程序作战

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门