携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情
上一篇文章介绍的是通过编码的方式实现BeanFactory 的对象注册和依赖绑定。这篇文章介绍如何通过外部配置文件实现上述功能。
外部配置文件方式
在Spring 的IOC 容器中,它支持两种格式的配置文件:
- Properties 文件格式
- XML 文件格式
在引入外部配置文件对BeanFactory 对象进行注册和依赖绑定的时候,对于Spring IOC 容器来说,必须要有一个统一的处理方式。
因为只有有了一个统一的处理方式之后,对于任何类型的外部配置,都可以无差别地将其注册并管理到容器中。
这个统一的方式,处理流程大致如下:
- 根据不同的外部配置方式(或者说不同的外部配置文件),给出对应的
BeanDefinitionReader实现类。 - 由此
BeanDefinitionReader实现类负责将对应的配置文件内容,并映射到BeanDefinition中。 - 将映射之后的
BeanDefinition注册到一个BeanDefinitionRegistry。 - 最后,
BeanDefinitionRegistry就完成Bean 的注册和加载。
对于很多诸如文件格式的解析、BeanDefinition 装配这种工作,都是由BeanDefinitionReader 的实现类来完成的;BeanDefinitionRegistry 的主要工作就是负责保管各个Bean。
对于最开始介绍的Spring IOC 容器的两种配置文件格式,Spring 都有着对应的一些实现类的存在,所以不用我们自己去实现这些相关内容。
总结
这篇文章主要介绍的是通过配置文件对BeanFactory 中的对象进行注册和依赖绑定的方法及流程。这篇文章也是很易于理解的一篇文章,尤其是那个处理流程个,结合了之前讲解的一些内容,读者一定要好好理解,并仔细思考。我们会发现,其实Spring 的一些理念和我们日常生活中的逻辑其实很相似,及你需要什么,就提供什么;提供的方法也和正常的思维逻辑及其贴合。后续的文章我们会继续细致地介绍这两种配置文件格式的使用。