参考博客:http://cmsblogs.com/?p=4032
这一章不难哦!耐心看下去,只有到最后才有恍然大悟的感觉!
一、Environment接口体系介绍
老规矩,先看类图设计(常回家看看)
Spring抽象了一个Environment来表示环境配置
除了可以解析相应的属性信息外,还提供了剖面相关的API,目的是: 可以根据剖面有选择的进行注册组件/配置。比如对于不同的环境注册不同的组件/配置(正式机、测试机、开发机等的数据源配置)。
其中
StandardEnvironment: 标准环境,普通Java应用时使用,会自动注册System.getProperties() 和 System.getenv()到环境
StandardServletEnvironment:标准Servlet环境,其继承了StandardEnvironment,Web应用时使用,除了StandardEnvironment外,会自动注册ServletConfig(DispatcherServlet)、ServletContext及JNDI实例到环境
整个Environment接口体系具体可以分成两部分:
理解:Environment可以理解为一个管理对象,管理以下两个对象
- properties:属性
简单来说就是对key-value数据进行操作(增删改查)。从Spring角度看,properties存储了环境变量以及用户提供的key-value数据。
这里实现上被拆分出两个概念:
(1)属性源(PropertySource)
(2)属性解析器(PropertyResolver) - Profile:剖面
用过spring的都知道,就不详述了,不知道去查一查