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