JFinal Undertow 配置檔案工作原理

2021-10-07 06:39:00 字數 2595 閱讀 9846

目錄

1. 預設配置檔案

2. 生產版本配置檔案

3. 配置項預設值

4. web 資源載入路徑配置

首先要從 undertowserver 說起,undertowserver 有多個建立方法,不管使用哪個建立方法最終建立時建立時都需要先建立 undertowconfig,並將這個作為引數用於建立 undertowserver。原始碼摘取如下:

/**

* 建立 undertowserver

* * 嘗試使用 "undertow.txt" 以及 "undertow-pro.txt" 初始化 undertow

* 當配置檔案不存在時不丟擲異常而是使用預設值進行初始化

*/public static undertowserver create(class<? extends jfinalconfig> jfinalconfigclass)

同樣的 undertowconfig 也有多個建立方法,不管使用哪個建立方法最終建立時都是需要進行配置檔案的載入和配置項的初始化,當指定配置檔名根據指定的配置檔案進行載入,未指定配置檔名時將載入預設的配置檔案 undertow.txt,並進行引數賦值。原始碼摘取如下:

public undertowconfig(string jfinalconfigclass) 

}

jfinal-undertow 將會自動嘗試載入生產版本的配置檔案,可以根據預設配置檔案或者指定的配置檔案自動獲取生產版本的配置檔案,原始碼摘取如下:

/**

* 假定使用者建立 undertowserver 時指定 undertow 的配置檔案為 abc.txt

* 或者 abc-dev.txt 或者 abc_dev.txt,例如:

* * 嘗試載入 abc-pro.txt 便於在 fatjar 模式下以 config 目錄中通過建立

* abc-pro.txt 配置檔案覆蓋打包在 jar 包中的 abc-dev.txt 配置

*/protected string buildundertowconfigpro(string undertowconfig) else

}

配置檔案中的所有項在 undertowconfig 中都是有預設值得,當沒有任何乙個配置檔案時也就是使用這些預設值了,多數預設值都是 null,有效的幾個如下:

// 開發模式才支援熱載入,此配置與 jfinal 中的是不同的用途

protected volatile static boolean devmode = false;

protected int port = 80;

protected string host = "0.0.0.0";

protected string contextpath = "/";

// web 資源路徑

protected int gzipminlength = 1024;

jfinal undertow 可以十分方便地從檔案系統的目錄以及 class path 或 jar 包中載入 web 靜態資源,以下是配置示例:

undertow.resourcepath 配置的另乙個重點是,以 "classpath:" 為字首的配置需要自行注意路徑是否存在,盡可能只配置存在的路徑。而不以 "classpath:" 打頭的配置可以將開發與部署時的路徑一起配置進來(逗號分隔開),jfinal undertow 會在執行時檢測路徑是否存在,存在才真正讓其生效,從而很方便一次配置同時適用於開發、生產兩種環境。

重要:pathkit.getwebrootpath() 將指向 undertow.resourcepath 配置中的第乙個有效目錄,而 configengine(engine engine) 方法中的 engine 物件已被預設配置了 engine.setbasetemplatepath(pathkit.getwebrootpath())。所以該配置與 engine 的 basetemplatepath 有關聯。

實際測試資訊記錄如下:

1、jfinal.initpathkit() 中的 servletcontext.getrealpath("/"); 獲取到的值,取決於 undertow.resourcepath,使用的是第乙個有效目錄;

2、根據**觀察應該是在 undertowserver.configundertow 中使用 di.setresourcemanager(config.getresourcemanager()); 邏輯將 undertow.resourcepath 和 servletcontext 做了關聯;

3、分別在 undertowserver.start、undertowserver.dostart、myconfig.onstart方法中輸出了多次 pathkit.getwebrootpath,控制台顯示的輸出順序是在 onstart 方法前後都有輸出,但是僅有 onstart 方法中輸出的資訊是在 undertow.txt 中配置的,undertowserver.start、undertowserver.dostart 都不是配置中的,這應該就是波總說的時機不對吧,但是能力有限不能很好地理解這個時機。

websphere datasource配置檔案

1 ibm websphere 6.0 配置檔案可能藏身之地 d program files ibm rational sdp 6.0 runtimes base v6 profiles default config 2 wsc副檔名 或資料夾為 wsc 為websphere config目錄 3 ...

php Apache phpMyAdmin配置方法

版本 php 5.3.0 win32 vc9 x86.zip apache 2.2.11 win32 x86 no ssl.msi phpmyadmin 3.2.1 rc1 all languages.zip mysql 5.4.1 beta win32.msi php將php 5.3.0 win3...

SAC IA粗配準 NDT精配準

正態分佈變換演算法 3d ndt 正態分佈變換演算法應用於三維點的統計模型,使用標準最優化技術來確定兩個點雲間的最優的匹配,因為其在配準過程中不利用對應點的特徵計算和匹配,所以時間比其他方法快,可用於點較多時的配準過程。其原理可參考martin magnusson的the three dimensi...