spring enviroment

spring enviroment:

enviroment包含2个概念: profile 和 properties

profile:支持不同环境下支持不同的bean注册。

properties:表示数据源属性。

1、Profile注解:

当对应名称的Profile激活,标记有对应@Profile bean才能注册到容器中,设置容器激活Profile的方法:

【1】可以通过enviroment对象,setActiveProfile()方法来设置。

【2】环境变量 --spring.profiles.active= 来指定。

spring支持多个profiles同时激活,如上面2种方式分别通过如下方式指定多个profiles

setActiveProfiles(),

--spring.profiles.active=test,pro :

Profile 传递:

在@Configuration标记的类上,标记@Profile,则所有方法@Bean或者@Import导入的类都会被传递为该Profile,除非该Profile激活,不然所有的Bean都不会激活。

spring enviroment_第1张图片
如上例子:设置为dev,即使方法有 dev Bean方法,也无法注入。


2、properties 属性源

spring StandardEnvironment是由两个PropertySource对象所组成的,

【1】、一个代表的是JVM的系统属性(可以通过System.getProperties()来获取)。

【2】、而另一种则是系统的环境变量(通过System.getenv()来获取)。

系统属性的优先级高于系统环境变量的优先级。

你可能感兴趣的:(spring enviroment)