Hasor 調(diào)用類初始化方法

2018-10-06 10:30 更新

有時候我們希望有 Bean 可以在被創(chuàng)建時自動調(diào)用一個 init 方法,本小節(jié)就來向大家展示一下 Hasor 這方面的能力。

方式一:通過 @Init 注解,例如下面這樣。

public class PojoBean {
    @Init
    public void init(){
        ...
    }
}


方式二:通過編碼方式在 Module 初始化時指定,例如下面這樣。

public class MyModule implements Module {
    public void loadModule(ApiBinder apiBinder) throws Throwable {
        apiBinder.bindType(PojoBean.class).initMethod("init");
    }
}


小貼士:如果您組合使用 @Singleton 注解和 @Init 注解,同時這個類在 Hasor 啟動時通過 Module 預(yù)先注冊到了 Hasor 容器中。那么 Hasor 會在啟動時自動創(chuàng)建這個類并調(diào)用 init 方法。例如:

@Singleton
public class PojoBean {
    @Init
    public void init(){
        ...
    }
}

public class MyModule implements Module {
    public void loadModule(ApiBinder apiBinder) throws Throwable {
        apiBinder.bindType(PojoBean.class);
    }
}


或者下面這樣的方式也可以達到同樣的效果:

public class PojoBean {
    public void init(){
        ...
    }
}

public class MyModule implements Module {
    public void loadModule(ApiBinder apiBinder) throws Throwable {
        apiBinder.bindType(PojoBean.class)
            .initMethod("init")    // 初始化方法,相當(dāng)于 @Init 注解
            .asEagerSingleton();   // 單例,相當(dāng)于 @Singleton 注解
    }
}


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號