Hasor 注入配置

2018-10-06 10:30 更新

前面講了很多有關(guān) Bean 的依賴注入?,F(xiàn)在我們來(lái)介紹一下 Hasor 的一個(gè)特殊依賴注入功能。我們先來(lái)舉例一個(gè)場(chǎng)景,假定我們有一個(gè)類用來(lái)封裝數(shù)據(jù)庫(kù)連接信息。它的樣子應(yīng)該類似這樣的:

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


通常我們的數(shù)據(jù)配置會(huì)保存在 “hasor-config.xml” 的配置文件里,例如這樣:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
    <jdbcSettings>
        <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
        <jdbcURL>jdbc:mysql://127.0.0.1:3306/test</jdbcURL>
        <userName>sa</userName>
        <userPassword></userPassword>
    </jdbcSettings>
</config>


接下來(lái)擺在我們面前的第一個(gè)問題就是,如何把配置文件里的配置讀取到配置文件中。當(dāng)然您可以想下面這樣通過 Setting 配置文件讀取接口進(jìn)行讀取。

public class DataBaseBean {
    @Inject
    private Settings settings;//依賴注入 Settings 接口對(duì)象。

    public void setupConfig(){
        jdbcDriver = settings.getString("jdbcSettings.jdbcDriver");
        jdbcURL = settings.getString("jdbcSettings.jdbcURL");
        user = settings.getString("jdbcSettings.user");
        password = settings.getString("jdbcSettings.password");
    }
}


上面這樣的代碼雖然可以滿足需求,但是 Hasor 為您提供了更加便捷的方式,您可以直接通過依賴注入,把配置文件中的配置信息直接注入到你的字段上。同樣的例子,我們改一下就變得無(wú)比簡(jiǎn)潔:

public class DataBaseBean {
    @InjectSettings("jdbcSettings.jdbcDriver")
    private String jdbcDriver;
    @InjectSettings("jdbcSettings.jdbcURL")
    private String jdbcURL;
    @InjectSettings("jdbcSettings.user")
    private String user;
    @InjectSettings("jdbcSettings.password")
    private String password;
    ...
}


下面我們?cè)谘菔疽幌?@InjectSettings 更強(qiáng)悍的功能,在注入的時(shí)自動(dòng)轉(zhuǎn)換類型。

public class TestBean {
    @InjectSettings("userInfo.myAge")
    private int myAge;
}
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
    <userInfo>
        <myAge>31</myAge>
    </userInfo>
</config>


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)