在spring中使用属性文件的流程相信大家都知道,只要使用<context:property-placeholder />
标签将属性文件加载进来就可以了,然后在需要的时候通过表达式${key:默认值}
就可以获取到值了,很方面,这里就来分析spring在源码层面是如何做到的。
1.context:property-placeholder
标签解析
使用spring首先是从解析xml的配置文件开始,spring要将xml文件中的定义转换成bean的定义信息,spring对xml文件的解析是按照namespace来的,namespace主要分为defaultNamespace:beans和customNamespace,针对每一个customNamespaces,必须有对应的NamespaceHandler,NamespaceHandler会按照不同的标签分发到相应的转换器BeanDefinitionParser中,spring在查找NamespaceHandler时会自动读去所有META-INF目录下面的属性文件spring.handlers,该文件存放命名空间的地址和NamespaceHandler的关系。context命名空间配置在spring-context jar包下面,代码如下:
http\://www.springframework.org/schema/context=org.springframework