Hasor 得到AppContext

2018-10-09 16:36 更新

用過 Spring 的同學(xué)都知道要想注入 Spring 容器本身您必須要實(shí)現(xiàn)一個接口。在Hasor 中您也可以使用相同的方式,但是 Hasor 為您提供了一種更簡單的方式,如下:

public class TestBean {
    @Inject()
    private AppContext appContext;
}


您的眼睛沒有看錯,就是這么簡單。一個 @Inject 就可以搞定。


另外 Hasor 還提供了一些其它方式方便您在一些特殊場景下拿到 AppContext。

public class AwareBean implements AppContextAware {
    public void setAppContext(AppContext appContext) {
       ...
    }
}

appContext.getInstance(AwareBean.class);


您還可以利用 Hasor 的事件機(jī)制來拿到 AppContext,例如:

public class MyModule implements Module {
    public void loadModule(ApiBinder apiBinder) throws Throwable {
        Hasor.autoAware(apiBinder.getEnvironment(),new AwareBean());
    }
}


Hasor.autoAware方法使用時,要注意,一定要在 Hasor onStart 階段之前調(diào)用,否則您即便是調(diào)用了這個方法也不會得到 AppContext 對象。這是因?yàn)?aware 是通過 ContextEvent_Started 事件完成 AppContext 對象獲取的。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號