Spring Environment
Environment是一种在Spring容器内已配置(Profile)和属性(Properties)为模型的应用环境抽象整合。
Spring Framewwork提供了两种Enviroment的实现,即
- 一般应用:StandardEnvironment
- Web应用:StandardServletEnvironment
Spring Profiles
配置(Profile)
在Spring容器,Profile是一种命名的Bean定义逻辑组。一个Spring应用可以同时激活多个Profile,常见的使用场景如:应用部署环境(test、stage、production)、单元测试等。
应用程序可通过调用ConfigurableEnvironment接口控制Profile的激活,如:
- setActiveProfiles(String...)会覆盖之前profile
- addActiveProfile(String)会增加profile
- setDefaultProfiles(String...)设置默认初始化方法
Spring Properties
属性(Properties)
属性又称之为配置项,Key-Value的形式。在Spring应用中常用作占位符(Placeholder),而在API层面,Spring Framework如下抽象来表述:
- 组合属性:PropertySources
- 单一属性:PropertySource
Spring 事件监听器
事件(Event)
ApplicationEvent
事件监听器(EventListener)
ApplicationListener
ConfigFileApplicationListener
在Spring Boot场景中,用于读取默认以及Profile关联的配置文件(application.properties)
Spring Boot配置文件
application.properties或application.xml
加载器:PropertiesPropertySourceLoader
application.yml或者application.yaml
加载器:YamlPropertySourceLoader
Environment端点
请求URL:/env
数据来源:EnvironmentEndpoint
Controller来源:EnvironmentMvcEndpoint