Spring中的Environment
用来表示整个应用运行时的环境,为了更形象地理解Environment,你可以把Spring应用的运行时简单地想象成两个部分:一个是Spring应用本身,一个是Spring应用所处的环境,而Environment这个接口,就是对这个所处的环境的概念性建模。
Environment在容器中是一个抽象的集合,是指应用环境的2个方面:profiles和properties。
Profile
profile配置是一个被命名的、bean定义的逻辑组,这些bean只有在给定的profile配置激活时才会注册到容器。不管是XML还是注解,Beans都有可能指派给profile配置。Environment环境对象的作用,对于profiles配置来说,它能决定当前激活的是哪个profile配置,和哪个profile是默认。
- 一个profile就是一组Bean定义的逻辑分组。
- 这个分组,也就 这个profile,被赋予一个命名,就是这个profile名字。
- 只有当一个profile处于active状态时,它对应的逻辑上组织在一起的这些Bean定义才会被注册到容器中。
- Bean添加到profile可以通过XML定义方式或才annotation注解方式。
- Environment对于profile所扮演的角色是用来指定哪些profile是当前活跃的缺省。
Properties
properties属性可能来源于properties文件、JVM properties、system环境变量、JNDI、servlet context parameters上下文参数、专门的properties对象,Maps等等。Environment对象的作用,对于properties来说,是提供给用户方便的服务接口、方便撰写配置、方便解析配置。
- 配置属性源。
- 从属性源中获取属性。
容器(ApplicationContext)所管理的bean如果想直接使用Environment对象访问profile状态或者获取属性,可以有两种方式
(1)实现EnvironmentAware接口。
(2)@Inject或者@Autowired一个Environment对象。
绝大数情况下,bean都不需要直接访问Environment对象,而是通过类似@Value注解的方式把属性值注入进来。
Spring中的Environment相关推荐
- Spring 中的 context
Spring 中的 context BeanFactory 首先看下,官方在代码中给出的注释: The root interface for accessing a Spring bean conta ...
- Spring 中 Bean 的生命周期
本文作者: 伯乐在线 - yemengying 智商捉鸡?,实在没办法一下子理解Spring IoC和AOP的实现原理,看的闹心也不太懂,所以...决定拆成小的不能在小的一个个问题,一点点啃.今天先来 ...
- 原创 | 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
这是Hollis的第 216 篇原创分享 作者 l cxuan 来源 l Hollis(ID:hollischuang) 现在大部分的Spring项目都采用了基于注解的配置,采用了@Configura ...
- Spring中调用远程EJB的配置
http://smarttao.bokee.com/3961393.html 对于一些遗留项目,实现EJB的远程调用是很有必要的,这里就简单介绍一下Spring中的配置和调用方式,从中可以感受到Spr ...
- 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
作者 l cxuan 来源 l Hollis(ID:hollischuang) 现在大部分的Spring项目都采用了基于注解的配置,采用了@Configuration 替换标签的做法.一行简单的注解就 ...
- spring中context:property-placeholder标签详解
spring中context:property-placeholder标签的使用说明 1,有些参数在某些阶段中是常量. 在开发阶段我们连接数据库时的url,username,password等信息 分 ...
- 四、Spring中使用@Conditional按照条件注册Bean
以前其实是写过@Condtional注解的笔记的,这里附上链接: Spring中的@conditional注解 但已经忘记的差不多了,所以今天再重新学习下,可以互补着学习 @Contional:按照一 ...
- 深究Spring中Bean的生命周期
前言 这其实是一道面试题,是我在面试百度的时候被问到的,当时没有答出来(因为自己真的很菜),后来在网上寻找答案,看到也是一头雾水,直到看到了<Spring in action>这本书,书上 ...
- spring中配置数据源
spring中配置数据源的几种常见方式: mysql 数据库配置(jdbc properties)jdbc driverClassName=com mysql jdbc Driverjdbc url= ...
- Spring中的一些常用注解
目录 1. @Autowired 2. @Qualifier 3. @Resource 4. @Component 5. @Value 6. @Bean 7. 声明bean的几个注解 7.1 @Ser ...
最新文章
- 摆脱 FM!这些推荐系统模型真香
- poj1734(最小环+路径)
- ISA Server 2006的全自动无人职守安装
- java 自旋锁_java锁的种类以及辨析(一):自旋锁
- caffe的python接口学习(8):caffemodel中的参数及特征的抽取
- 系统运维遇上了大救星,是什么让IT效率提高48%
- gRPC创建Java RPC服务
- win系统删除,已经注册的服务
- 大数据之-Hadoop3.x_MapReduce_序列化概述---大数据之hadoop3.x工作笔记0094
- git钩子放服务器_Git代码自动化部署、Hook、钩子
- 电视剧《都挺好》弹幕数据分析
- 数据挖掘——时间序列算法之组合模型
- amoeba mysql binary_amoeba安装与实现amoeba for mysql读写分离
- 台式计算机开机慢,台式电脑开机很慢的解决办法
- freesurfer recon-all命令
- Linux常用命令——ps命令
- 《程序员的呐喊》一一1.2 巴别塔
- php5.6 nts ts,php ts nts v6 v9的区别
- 51单片机之串口通信
- java 聊天机器人 源码_Alice聊天机器人源码及DEMO - 源码下载|Windows编程|网络编程|源代码 - 源码中国...
热门文章
- 键盘输入123456789c语言,Python:键盘输入input
- CVPR 2021 | 让机器想象未见的世界!反事实的零次和开集识别
- 【云原生Kubernetes系列第二篇】Kubernetes(k8s)核心组件(对的人兜兜转转最后还是会遇见)
- 智能电子后视镜MFC01-LCD 高配版规格书(AI-CMS)
- 海思Hi3559V200运动相机、流媒体后视镜开发板防雷防静电推荐图
- 像素、英寸、厘米之间的换算关系
- IT-梦想|永无止境
- IDEA去掉SQL语句的黄色警告
- yourshelf是什么意思中文_[英语shelf的中文是什么意思]英语shelf的中文是什么意思...
- 2020-10-13携程招聘算法题