codecamp

Hasor 得到AppContext

用过 Spring 的同学都知道要想注入 Spring 容器本身您必须要实现一个接口。在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 的事件机制来拿到 AppContext,例如:

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


Hasor.autoAware方法使用时,要注意,一定要在 Hasor onStart 阶段之前调用,否则您即便是调用了这个方法也不会得到 AppContext 对象。这是因为 aware 是通过 ContextEvent_Started 事件完成 AppContext 对象获取的。


Hasor ID注入
Hasor 注入配置
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }