Hasor 注入環(huán)境變量

2018-10-09 16:37 更新

在前面小節(jié),我們看到 Hasor 支持注入配置文件的功能,這個(gè)小結(jié)在向您展示一下 Hasor 注入環(huán)境變量的能力。


環(huán)境變量,指的是操作系統(tǒng)層面設(shè)置的環(huán)境變量,例如:JAVA_HOME,還有當(dāng)前登錄用戶的主目錄:USER.HOME。


當(dāng)然這些環(huán)境變量你也可以通過“System.getenv()” 或 “System.getProperties()” 自己拿到。只不過 Hasor 針對環(huán)境變量做了一些增強(qiáng)并加以管理。有關(guān)環(huán)境變量的細(xì)節(jié)在后面環(huán)境變量章節(jié)會(huì)有更加深入的講解,現(xiàn)在我們來看一看,如何讓 Hasor 把 JAVA_HOME 注入到我們的 Bean 中。

public class DataBaseBean {
    @InjectSettings("${JAVA_HOME}")
    private String javaHome;
}


為了讓大家更加直觀的認(rèn)識到 Hasor 的環(huán)境變量注入不只是簡單的獲取 JAVA_HOME 我們,還是以“注入配置”章節(jié)中的場景為例:

public class DataBaseBean {
    private String jdbcDriver;
    private String jdbcURL;
    private String user;
    private String password;
    ...
}


在上面這個(gè)例子中,我們知道數(shù)據(jù)庫的帳號、密碼、數(shù)據(jù)庫地址。對于我們來說比較敏感,一個(gè)不小心就容易泄露出去。更不要說放到配置文件里,那樣會(huì)跟隨git、svn版本軟件永久保留下來。


為了保密,我們選擇在應(yīng)用程序啟動(dòng)的時(shí)候通過 “-D” 參數(shù)把用戶名、密碼傳遞給程序。然后讓 Hasor 框架為我們把傳入的敏感信息,注入到 DataBaseBean 類中。

public class DataBaseBean {
    @InjectSettings("${db.user}")
    private String user;
    @InjectSettings("${db.pwd}")
    private String password;
    ...
}

public class TestMain {
    public static void main(String[] args) throws Throwable {
        AppContext appContext = Hasor.createAppContext();
        appContext.getInstance(DataBaseBean.class);
    }
}


最后我們要通過命令行的方式啟動(dòng)這個(gè)程序:java TestMain -Ddb.user=username -Ddb.pwd=password


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號