javascript
Spring中的Environment
用來(lái)表示整個(gè)應(yīng)用運(yùn)行時(shí)的環(huán)境,為了更形象地理解Environment,你可以把Spring應(yīng)用的運(yùn)行時(shí)簡(jiǎn)單地想象成兩個(gè)部分:一個(gè)是Spring應(yīng)用本身,一個(gè)是Spring應(yīng)用所處的環(huán)境,而Environment這個(gè)接口,就是對(duì)這個(gè)所處的環(huán)境的概念性建模。
Environment在容器中是一個(gè)抽象的集合,是指應(yīng)用環(huán)境的2個(gè)方面:profiles和properties。
Profile
profile配置是一個(gè)被命名的、bean定義的邏輯組,這些bean只有在給定的profile配置激活時(shí)才會(huì)注冊(cè)到容器。不管是XML還是注解,Beans都有可能指派給profile配置。Environment環(huán)境對(duì)象的作用,對(duì)于profiles配置來(lái)說(shuō),它能決定當(dāng)前激活的是哪個(gè)profile配置,和哪個(gè)profile是默認(rèn)。
?
- 一個(gè)profile就是一組Bean定義的邏輯分組。
- 這個(gè)分組,也就 這個(gè)profile,被賦予一個(gè)命名,就是這個(gè)profile名字。
- 只有當(dāng)一個(gè)profile處于active狀態(tài)時(shí),它對(duì)應(yīng)的邏輯上組織在一起的這些Bean定義才會(huì)被注冊(cè)到容器中。
- Bean添加到profile可以通過(guò)XML定義方式或才annotation注解方式。
- Environment對(duì)于profile所扮演的角色是用來(lái)指定哪些profile是當(dāng)前活躍的缺省。
Properties
properties屬性可能來(lái)源于properties文件、JVM properties、system環(huán)境變量、JNDI、servlet context parameters上下文參數(shù)、專(zhuān)門(mén)的properties對(duì)象,Maps等等。Environment對(duì)象的作用,對(duì)于properties來(lái)說(shuō),是提供給用戶方便的服務(wù)接口、方便撰寫(xiě)配置、方便解析配置。
?
- 配置屬性源。
- 從屬性源中獲取屬性。
容器(ApplicationContext)所管理的bean如果想直接使用Environment對(duì)象訪問(wèn)profile狀態(tài)或者獲取屬性,可以有兩種方式
(1)實(shí)現(xiàn)EnvironmentAware接口。
(2)@Inject或者@Autowired一個(gè)Environment對(duì)象。
絕大數(shù)情況下,bean都不需要直接訪問(wèn)Environment對(duì)象,而是通過(guò)類(lèi)似@Value注解的方式把屬性值注入進(jìn)來(lái)。
總結(jié)
以上是生活随笔為你收集整理的Spring中的Environment的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三村合建水厂问题研究
- 下一篇: 如果物联网平台一直不盈利,行业集体该怎么