spring配置解析过程

来源:互联网 发布:云计算在教育科研领域 编辑:程序博客网 时间:2024/05/16 14:47

1、到直接引用的jar包的META-INF/下查找文件spring.handlersspring.schemas文件,并加载业务方自定义的namespace parserbean definition parser

spring的是ContextNamespaceHandler

2、从WEB-INF/web.xml开始读取webService所涉及的所有xml文件。按顺序读取解析,调用对应的bean definition parserspring自带的和业务方自定义的)解析出若干bean definition(一个bean就对应一个bean definition),此时占位符还没有被替换;

3 将所有beanFactoryPostProcessor创建出来(包括spring内置的和xml中定义的),将已确定的beanPostProcessor也创建出来(包括spring内置的和xml文件中定义的),再创建beanFactory,然后依次调用所有的beanFactoryPostProcessor。值得注意的是,标签”property-placeholder”被解析后对应的就是一个beanFactoryPostProcessorPropertySourcesPlaceholderConfigurer),占位符的替换也由它完成,不过它只替换beenDefinitionpropertyValues,支持的属性类型是Object[],List, Set, Map, String,并且只替换BeanDefinition中的propertyValuesattributes是不会被替换的。

4、按顺序创建bean