首页
/
每日頭條
/
職場
/
jstorm命令
jstorm命令
更新时间:2025-04-04 23:30:13

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
推荐阅读
雲浮家校協作攜手迎開學(兩校合并一家親)
雲浮家校協作攜手迎開學(兩校合并一家親)
     紅網時刻新聞8月30日訊(通訊員 易小旭)8月30日上午,邵陽市十五中、十六中在一中老校區行政樓二樓教工會議室召開秋季開學工作會議。   會議指出,本次會議是兩校重啟合并的首個工作會議,具有裡程碑的意義。兩所學校的合并,既是政策的需要,也是學校謀求長遠發展的重大舉措,有利于優化教育資源配置,進一步推動邵陽教育發展。希望全體教工充分理解,凝心聚力,以...
2025-04-04
遊戲主播電競選手雙男主文(原耽推文:主播撿到一隻電競大神然後主播就去打職業了)
遊戲主播電競選手雙男主文(原耽推文:主播撿到一隻電競大神然後主播就去打職業了)
  啦啦啦,小女又來啦!!!   親愛的小仙女們,歡迎來到小女的小小天地,小女,一個小甜文愛好者,緻力于看遍好看的小說,把自己看到的好看的推薦給小仙女們,人送外号“人肉排雷機”(其實是自封的)。   喜歡小女這種負責任分享小說,不用等着别人排雷的小仙女可以關注小女呀,每天都有小說看!不用放屁股等踢啦!   ——————☞☜——————      《撿到一隻電...
2025-04-04
工作中常用到的Linux命令(工作中常用到的Linux命令)
工作中常用到的Linux命令(工作中常用到的Linux命令)
  來源:公衆号Java3y ,作者 Java3y      一、查看日志   線上出現了問題,登上線上的機器查日志是非常常見的操作了。我第一次登上線上機器查日志的時候,我還隻記得以下的幾個命令(假設現在我們的日志文件叫做service.log):   cat service.logtail -f service.logvim serivice.log(明顯...
2025-04-04
産品經理如何管理好團隊(從10大管理看産品經理的日常工作)
産品經理如何管理好團隊(從10大管理看産品經理的日常工作)
  項目經理和産品經理有一定的共性,一方面,項目的産物之一就是産品;另一方面,項目的管理體系與産品管理體系有一定的共通性和重合性。本文作者結合項目10大管理的思路,整理了産品的10大管理,一起來看一下吧。      産品經理這個職業有其特殊性,在學校,沒有專門的專業或課程教授你如何成為一名産品經理,雖然我們給産品經理劃分了初級、中級、高級,但是卻沒有相應的職...
2025-04-04
星際戰甲國服活動介紹(星際戰甲國服獲得版号)
星際戰甲國服活動介紹(星際戰甲國服獲得版号)
  昨日晚間時分,國家新聞出版署對“2020年進口網絡遊戲審批信息”進行了更新,客戶端遊戲《星際戰甲》确認過審獲得版号。      據新聞出版署官網信息顯示,《星際戰甲》國服由深圳市創夢天地科技有限公司出版并運營,創夢天地是一家大型獨立手遊發行平台,以發行海外精品手遊著稱,先後成功發行了《水果忍者》、《神廟逃亡》系列、《地鐵跑酷》、《紀念碑谷》、《夢幻花園》...
2025-04-04
Copyright 2023-2025 - www.tftnews.com All Rights Reserved