W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
配置 Hasor 的環(huán)境變量有很多渠道,最簡單的就是像配置 JAVA_HOME
一樣配置一個(gè)系統(tǒng)環(huán)境環(huán)境變量。Hasor 的環(huán)境變量列表中是包含系統(tǒng)環(huán)境變量的。為了方便大家記憶,下面列了一個(gè)清單。表示屬于 Hasor 環(huán)境變量范疇的都有哪些:
JAVA_HOME
or System.getenv()
java xxxx -Dvar=...
System.getProperties()
env.config
屬性文件hasor.environmentVar
配置節(jié)點(diǎn)。下面我們主要講解 hasor.environmentVar
節(jié)點(diǎn)的配置方法,以及如何讀取到環(huán)境變量。下面兩個(gè)環(huán)境變量配置的骨架您可以根據(jù)實(shí)際情況自由選擇:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor.environmentVar>
...
</hasor.environmentVar>
</config>
or
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor>
<environmentVar>
...
</environmentVar>
</hasor>
</config>
第一個(gè)環(huán)境變量:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor.environmentVar>
<MY_VAR>Hello Word</MY_VAR>
</hasor.environmentVar>
</config>
在項(xiàng)目中讀取這個(gè)環(huán)境變量:
AppContext appContext = ...
Environment env = appContext.getEnvironment();
System.out.println(env.evalString("%MY_VAR%"));
在 Hasor 中讀取環(huán)境變量目前您不可以通過類似 xx.getVar("MY_VAR")
這種 API 來獲取,您必須通過表達(dá)式獲取。環(huán)境變量表達(dá)式的寫法是:%<var name>%
。
例1:引用其它環(huán)境變量
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor.environmentVar>
<MY_VAR>Hello Word , this is my JAVA_HOME : %JAVA_HOME%</MY_VAR>
</hasor.environmentVar>
</config>
MY_VAR 的輸出結(jié)果是:Hello Word , this is my JAVA_HOME : xxxxxx
例2:引用多個(gè)環(huán)境變量
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor.environmentVar>
<MY_NAME>zyc</MY_NAME>
<MY_AGE>100</MY_>
<MY_VAR>my name is : %MY_NAME% , age is %MY_AGE%</MY_VAR>
</hasor.environmentVar>
</config>
MY_VAR 的輸出結(jié)果是:my name is : zyc , age is 100
例3:動(dòng)態(tài)覆蓋
現(xiàn)在我們?cè)?例2 的基礎(chǔ)上不做任何代碼變化,只是在 jvm 啟動(dòng)時(shí)增加一個(gè)參數(shù):-DMY_NAME=ccc
,在看輸出結(jié)果就變成了:my name is : ccc , age is 100
例4:代碼中使用環(huán)境變量表達(dá)式:
AppContext appContext = ...
Environment env = appContext.getEnvironment();
System.out.println(env.evalString("i say %MY_VAR%."));
本質(zhì)上 Hasor 對(duì)于環(huán)境變量的定義是不區(qū)分大小寫的,您可以在 environmentVar
節(jié)點(diǎn)中定義全大寫環(huán)境變量名,也可以是全小寫,甚至大小寫混運(yùn)用。但是這樣做之后 xml 是無法檢測出任何錯(cuò)誤,但是 Hasor 框架在加載您的配置文件時(shí)會(huì)把它們統(tǒng)一做大寫化轉(zhuǎn)換,進(jìn)而導(dǎo)致您的環(huán)境變量配置失效。所以我們做出君子約定。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: