Hasor 解析Xml

2018-10-08 09:16 更新

前面演示的大量 Hasor 的配置文件內(nèi)部機制,同時也像我們展示了 Hasor 讀取配置文件就是一個簡單的表達式(例:hasor.packages

現(xiàn)在我們設(shè)想一下這樣的一組配置信息,我想讀取所有的 module :

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://project.hasor.net/hasor/schema/main">
    <hasor>
        ...
        <modules loadModule="${HASOR_LOAD_MODULE}" loadErrorShow="true">
            <module>net.hasor.web.valid.ValidWebPlugin</module>
            <module>net.hasor.web.render.RenderWebPlugin</module>
            <module>net.hasor.plugins.startup.StartupModule</module>
            <module>net.hasor.plugins.aop.AopModule</module>
        </modules>
        ...
    </hasor>
</config>


下面就介紹一下如何讀取這種配置,首先讀取這樣的配置信息主要有兩種方法:

  • 方法一:通過父節(jié)點解析Xml信息,具體如下:

  • XmlNode modules = env.getSettings().getXmlNode("hasor.modules");
    List<XmlNode> allModule = modules.getChildren("module");
    for (XmlNode modInfo : allModule){
      modInfo.getText();
    }
  • 方法二:考慮到我們的例子中 module 節(jié)點并沒有定義特殊的屬性,因此可以進一步從上面代碼簡化成如下:

  • XmlNode[] allModule = env.getSettings().getXmlNodeArray("hasor.modules.module");
    for (XmlNode modInfo : allModule){
      modInfo.getText();
    }

我們在方法二的基礎(chǔ)上還可以在進一步簡化成一行代碼如下:

String[] allModules = env.getSettings().getStringArray("hasor.modules.module");

Hasor 的配置文件讀取十分強大,更多強大的方法,請開發(fā)者自行嘗試:Settings 接口。獲取這個接口的方式很多,您可以依賴注入,也可以通過 ApiBinder 接口拿到,也可以通過 AppContxt 接口獲取。這里不在詳解。


使用 Hasor 的配置文件讀取方式,單獨處理一個指定的 xml 文件


Hasor 的配置文件解析機制,好的是它可以獨立 Hasor 使用。您可以單獨使用 net.hasor.core.setting.InputStreamSettings 類去加載您的 xml 文件,然后以 Hasor 的方式去處理它。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號