W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
findModules
:查找所有可以加載的 Module。doInitialize
:執(zhí)行 init 階段的起始標(biāo)志。newApiBinder
:創(chuàng)建 Module 在執(zhí)行 loadModule 方法時(shí)用到的 ApiBinder 參數(shù)。installModule
:加載每一個(gè) Module。doBind
:容器級(jí)的初始化操作doInitializeCompleted
:執(zhí)行 init 階段的終止標(biāo)志。findModules,這個(gè)階段的目的是找出所有配置文件中的 Module 并創(chuàng)建它們,這些 Module 將會(huì)在 installModule
階段中加載它們。
現(xiàn)在我們編寫一個(gè) HelloWord
Module 然后放入配置文件。然后我們啟動(dòng) Hasor 讓 findModules
來加載我們的 Module。首先我們創(chuàng)建 Module。
package net.test.hasor;
public class HelloModule implements Module {
public void loadModule(ApiBinder apiBinder) throws Throwable {
System.out.println("Hello Module");
}
}
接下來我們準(zhǔn)備一個(gè) Hasor 配置文件,并且填入如下內(nèi)容:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor.modules>
<module>net.test.hasor.HelloModule</module>
</hasor.modules>
</config>
最后啟動(dòng) Hasor 就可以看到 Hello Module
打印在控制臺(tái)上。
Hasor.createAppContext("my-config.xml");
Hasor 的很多套件都是通過這種方式進(jìn)入啟動(dòng)流程,即便是您沒有做過絲毫配置。例如:RSF。
如果您想要一個(gè)最純粹的 Hasor,不希望它在初始化時(shí)加載任何插件,您可以通過 HASOR_LOAD_MODULE
環(huán)境變量禁用 findModules
。例如:下面這個(gè)配置中 HelloModule
就不會(huì)被加載,同時(shí)任何一個(gè)內(nèi)置的 Module 都不會(huì)被加載。
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor>
<environmentVar>
<!-- 是否加載模塊 -->
<HASOR_LOAD_MODULE>false</HASOR_LOAD_MODULE>
</environmentVar>
<modules>
<module>net.test.hasor.HelloModule</module>
</modules>
</hasor>
</config>
為了達(dá)到上面這個(gè)效果您還可以這樣設(shè)置配置文件。有關(guān)配置文件特性的細(xì)節(jié)請(qǐng)?jiān)L問配置文件相關(guān)章節(jié)。
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
<hasor.modules loadModule="false">
<module>net.test.hasor.HelloModule</module>
</hasor.modules>
</config>
doInitialize
和 doInitializeCompleted
兩個(gè)階段。除非您是在擴(kuò)展 TemplateAppContext
否則您是無(wú)法截獲到這兩個(gè)階段調(diào)用通知的。在 Hasor 內(nèi)部 doInitializeCompleted 方法會(huì)負(fù)責(zé)通知 BeanContainer
完成對(duì)標(biāo)記了 @Init 方法的單例對(duì)象,以執(zhí)行啟動(dòng)創(chuàng)建工作。
newApiBinder
本質(zhì)上是創(chuàng)建 ApiBinder
接口對(duì)象的過程。在 Hasor3 之后,由于 ApiBinder 擴(kuò)展機(jī)制的引入,newApiBinder 變得與 findModules 同樣重要。有關(guān) ApiBinder 的內(nèi)容在后面的 ApiBinder 章節(jié)會(huì)深入講解。
installModule
階段是循環(huán)所有已知 Module 并執(zhí)行它們的 loadModule
方法去初始化它們。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: