首页
/
每日頭條
/
職場
/
jstorm命令
jstorm命令
更新时间:2026-07-30 07:02:00

jstorm命令?首先要從 UndertowServer 說起,UndertowServer 有多個創建方法,不管使用哪個創建方法最終創建時創建時都需要先創建 Undertowconfig,并将這個作為參數用于創建 UndertowServer源碼摘取如下:,下面我們就來說一說關于jstorm命令?我們一起去了解并探讨一下這個問題吧!

jstorm命令(配置文件工作原理)1

jstorm命令

1. 默認配置文件

首先要從 UndertowServer 說起,UndertowServer 有多個創建方法,不管使用哪個創建方法最終創建時創建時都需要先創建 Undertowconfig,并将這個作為參數用于創建 UndertowServer。源碼摘取如下:

/** * 創建 UndertowServer * * 嘗試使用 "undertow.txt" 以及 "undertow-pro.txt" 初始化 undertow * 當配置文件不存在時不抛出異常而是使用默認值進行初始化 */ public static UndertowServer create(Class<? extends JFinalConfig> jfinalConfigClass) { return new UndertowServer(new UndertowConfig(jfinalConfigClass)); }

同樣的 UndertowConfig 也有多個創建方法,不管使用哪個創建方法最終創建時都是需要進行配置文件的加載和配置項的初始化,當指定配置文件名根據指定的配置文件進行加載,未指定配置文件名時将加載默認的配置文件 undertow.txt,并進行參數賦值。源碼摘取如下:

public UndertowConfig(String jfinalConfigClass) { this.jfinalConfig = jfinalConfigClass; //這裡未指定參數文件使用默認的undertow.txt p = createPropExt(UNDERTOW_CONFIG); if (p.notEmpty()) { init(); } }

2. 生産版本配置文件

JFinal-Undertow 将會自動嘗試加載生産版本的配置文件,可以根據默認配置文件或者指定的配置文件自動獲取生産版本的配置文件,源碼摘取如下:

/** * 假定用戶創建 UndertowServer 時指定 undertow 的配置文件為 abc.txt * 或者 abc-dev.txt 或者 abc_dev.txt,例如: * UndertowServer.create(AppConfig.class, "abc.txt").start(); * * 嘗試加載 abc-pro.txt 便于在 fatjar 模式下以 config 目錄中通過創建 * abc-pro.txt 配置文件覆蓋打包在 jar 包中的 abc-dev.txt 配置 */ protected String buildUndertowConfigPro(String undertowConfig) { int index = undertowConfig.lastIndexOf('.'); if (index > 0) { String main = undertowConfig.substring(0, index); main = removeDevEnds(main); String ext = undertowConfig.substring(index); return main "-pro" ext; } else { return removeDevEnds(undertowConfig) "-pro"; } }

3. 配置項默認值

配置文件中的所有項在 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 String resourcePath = "src/main/webapp, WebRoot, WebContent"; protected int gzipMinLength = 1024;

4. web 資源加載路徑配置

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

undertow.resourcePath = src/main/webapp, classpath:static

如上所示 "src/main/webapp" 表示從項目根目錄下的 "src/main/webapp" 下去加載 web 靜态資源。 "classpath:static" 表示從 class path 以及 jar 包中的 static 路徑下去加載 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 都不是配置中的,這應該就是波總說的時機不對吧,但是能力有限不能很好地理解這個時機。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
兩年基層工作經驗可以斷斷續續嗎
兩年基層工作經驗可以斷斷續續嗎
“去會場多了,到現場就少了;“上級布置工作,我們不開會顯得不重視,不發文,年底萬一來檢查說我們沒落實,那就要問責”;“單位隻有3個領導,有時參加各類會議都忙不過來,工作隻能晚上和周末開展”;“工作要留痕,最近打印裝訂文件,生生把自己整成了一...
2026-07-30
吳孟達死前最後一部電影
吳孟達死前最後一部電影
2月27日,香港金牌老戲骨吳孟達因肝癌不幸去世。此前他就因罹患肝癌住院治療,情況不容樂觀。如今,吳孟達好友發布聲明,遺憾地宣布68歲的吳孟達已經離開人世,之後的祭奠儀式将低調進行。據媒體爆料,吳孟達在發現身患癌症後,立即進行了手術,但彼時癌...
2026-07-30
黃渤曬照辟謠
黃渤曬照辟謠
搜狐娛樂訊近日,有網友拍到黃渤在跨年當天和一群友人在外灘遊玩。值得注意的是,黃渤和其中一位女子手挽着手,十分親密。當晚,還被拍到該女子幫黃渤整理衣領,格外細心,引發網友熱議。6日淩晨,黃渤曬照回應,照片中标明該女子是“完全無語的女經紀人”,...
2026-07-30
不聽話被總裁打了一頓
不聽話被總裁打了一頓
前情回顧:賭場為了救小侍應,卻和賭王結了婚,在十年不見的賭局下,他竟然帶着保镖提前來找她了,而且還是在她的公司上演了一起鬧劇……點擊閱讀第一章:讓人無限恐怖的是,這個少年隻做了件事,就被斷了4根手指第11章:湛明遠因為抱着喬如彤的關系,那聲...
2026-07-30
産品經理設計後台産品的核心思路
産品經理設計後台産品的核心思路
如果你不是功能型産品經理,那麼這篇文章值得你已讀。enjoy~開放即共享,是互聯網的一個重要屬性和精神。它是一種服務模式,一個特殊的産品,目前較大規模的互聯網企業都有自己的開放平台。如果把自己局限為一個功能産品經理,工作當中隻是研究研究産品...
2026-07-30
Copyright 2023-2026 - www.tftnews.com All Rights Reserved