spring-core组件详解——环境体系

原创
2016/05/09 17:13
阅读数 988

在spring容器的环境体系中,存在两大实体组件,分别是环境(StandardEnvironment)和属性解决器(PropertySourcesPropertyResolver)。

体系图如下:

从图中可以看出,spring框架把两个组件的对外提供的功能性接口和自身的配置性接口进行了拆分,组件的配置API都几种在ConfigurableXXX接口中。

两个组件都只有唯一的标准实现类,即StandardEnvironment和PropertySourcesPropertyResolver。

两个组件之间的关系可以这样理解:

环境对象通过持有属性解决器对象的引用,从而实现组件复用。同时,环境对象所定义的接口继承自属性解决器接口,因此,环境对象也具有属性解决器的所有功能,而且在属性解决器的功能基础之上,又扩展出了环境的功能。细心的读者可能已经看出,这实际上是使用了装饰器模式,StandardEnvironment通过对PropertySourcesPropertyResolver的装饰,进行看功能增强。


我们可以将整个体系进行如下拆分,然后分别讲解:

              

  1. PropertyResolver属性解决器

  2. Environment环境

    整个环境模型定义好了,那么spring框架是如何使用这个模型的呢?

    通过继承或实现EnvironmentCapable接口,可以使得组件具有环境。接口定义如下:

    public interface EnvironmentCapable {
    
    	/**
    	 * Return the {@link Environment} associated with this component.
    	 */
    	Environment getEnvironment();
    
    }

    接口定义的唯一方法,就是获取与当前组件相关联的Environment环境对象。

    ApplicationContext接口继承自这个接口,也就是说所有应用上下文都是具有环境的。

    展开阅读全文
    加载中

    作者的其它热门文章

    打赏
    2
    4 收藏
    分享
    打赏
    0 评论
    4 收藏
    2
    分享
    返回顶部
    顶部