在應(yīng)用程序啟動時加載配置文件的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體涉及一種在應(yīng)用程序啟動時加載配置文件的方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的飛速發(fā)展,各類網(wǎng)絡(luò)應(yīng)用以及網(wǎng)絡(luò)服務(wù)層出不窮,無論是網(wǎng)絡(luò)應(yīng)用還是網(wǎng)絡(luò)服務(wù)都是由對應(yīng)的應(yīng)用程序來實現(xiàn)的。目前,開發(fā)人員在開發(fā)一個網(wǎng)絡(luò)應(yīng)用或網(wǎng)絡(luò)服務(wù)所對應(yīng)的應(yīng)用程序時,需要編寫大量的代碼才能實現(xiàn)對應(yīng)的功能。為了簡化開發(fā)人員的工作量,出現(xiàn)了多種多樣的應(yīng)用開發(fā)框架,例如web框架等,利用這些應(yīng)用開發(fā)框架來編寫應(yīng)用程序能夠顯著降低開發(fā)人員的開發(fā)成本。
[0003]雖然應(yīng)用開發(fā)框架能夠為開發(fā)人員帶來很多便利,但是仍然存在很多不足。例如,每一個網(wǎng)絡(luò)應(yīng)用或網(wǎng)絡(luò)服務(wù)所對應(yīng)的應(yīng)用程序中都會用到一些環(huán)境變量,這些環(huán)境變量的具體數(shù)值可能隨應(yīng)用程序的運行環(huán)境改變而發(fā)生變化,為此,通常將這些環(huán)境變量存儲在配置文件中,當(dāng)應(yīng)用程序啟動時,通過加載該配置文件來獲取環(huán)境變量的具體數(shù)值。在現(xiàn)有技術(shù)中,開發(fā)人員每開發(fā)一個網(wǎng)絡(luò)應(yīng)用或網(wǎng)絡(luò)服務(wù),就需要為該網(wǎng)絡(luò)應(yīng)用或網(wǎng)絡(luò)服務(wù)專門編寫一套完整的配置文件,并且,還要提供解析該配置文件的工具,以使應(yīng)用程序啟動時能夠加載解析后的配置文件。由于配置文件的編寫及解析需要耗費開發(fā)人員大量的時間和精力,因此,現(xiàn)有方式顯然增加了開發(fā)人員的工作量,提高了開發(fā)成本。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的在應(yīng)用程序啟動時加載配置文件的方法及裝置。
[0005]依據(jù)本發(fā)明的一個方面,提供了一種在應(yīng)用程序啟動時加載配置文件的方法,其中,應(yīng)用程序為基于應(yīng)用開發(fā)框架實現(xiàn)的應(yīng)用程序,該方法包括:通過與應(yīng)用開發(fā)框架相對應(yīng)的發(fā)布模塊接收針對應(yīng)用程序發(fā)出的啟動指令;發(fā)布模塊讀取應(yīng)用程序中包含的配置文件,并對配置文件進(jìn)行解析后將解析結(jié)果發(fā)送給應(yīng)用開發(fā)框架;由應(yīng)用開發(fā)框架將解析結(jié)果加載到內(nèi)存中,以供應(yīng)用程序在運行過程中讀取。
[0006]依據(jù)本發(fā)明的另一方面,提供了一種在應(yīng)用程序啟動時加載配置文件的裝置,其中,應(yīng)用程序為基于應(yīng)用開發(fā)框架實現(xiàn)的應(yīng)用程序,該裝置包括:應(yīng)用開發(fā)框架以及與應(yīng)用開發(fā)框架相對應(yīng)的發(fā)布模塊;其中,發(fā)布模塊適于在接收到針對應(yīng)用程序發(fā)出的啟動指令后,讀取應(yīng)用程序中包含的配置文件,并對配置文件進(jìn)行解析后將解析結(jié)果發(fā)送給應(yīng)用開發(fā)框架;應(yīng)用開發(fā)框架適于將解析結(jié)果加載到內(nèi)存中,以供應(yīng)用程序在運行過程中讀取。
[0007]本發(fā)明提供的在應(yīng)用程序啟動時加載配置文件的方法及裝置,不僅提供了應(yīng)用開發(fā)框架,還提供了與該應(yīng)用開發(fā)框架相對應(yīng)的發(fā)布模塊,因此,通過該應(yīng)用開發(fā)框架實現(xiàn)的應(yīng)用程序能夠由發(fā)布模塊來完成發(fā)布、調(diào)試等與啟動相關(guān)的操作。具體地,當(dāng)需要啟動該應(yīng)用程序時,首先,由發(fā)布模塊接收啟動指令;然后,發(fā)布模塊讀取該應(yīng)用程序中包含的配置文件,并對配置文件進(jìn)行解析后將解析結(jié)果發(fā)送給應(yīng)用開發(fā)框架;最后,由應(yīng)用開發(fā)框架將解析結(jié)果加載到內(nèi)存中,以供應(yīng)用程序在運行過程中讀取。由此可見,在本發(fā)明中,能夠通過發(fā)布模塊來解析配置文件,并通過應(yīng)用開發(fā)框架將解析結(jié)果加載到內(nèi)存中,應(yīng)用程序的開發(fā)人員不必提供解析配置文件的工具,從而減少了應(yīng)用程序的開發(fā)成本。
[0008]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0009]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0010]圖1示出了本發(fā)明一個實施例提供的在應(yīng)用程序啟動時加載配置文件的方法的流程圖;
[0011]圖2示出了本發(fā)明一個具體實施例提供的在應(yīng)用程序啟動時加載配置文件的方法的流程圖;以及,
[0012]圖3示出了本發(fā)明一個實施例提供的在應(yīng)用程序啟動時加載配置文件的裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0013]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0014]本發(fā)明實施例提供了一種在應(yīng)用程序啟動時加載配置文件的方法及裝置,至少能夠解決現(xiàn)有方式中由應(yīng)用程序提供解析配置文件的工具所導(dǎo)致的開發(fā)成本高昂的技術(shù)問題。
[0015]圖1示出了本發(fā)明一個實施例提供的在應(yīng)用程序啟動時加載配置文件的方法的流程圖。其中,應(yīng)用程序為基于應(yīng)用開發(fā)框架實現(xiàn)的應(yīng)用程序,如圖1所示,該方法包括如下步驟:
[0016]步驟SllO:通過與應(yīng)用開發(fā)框架相對應(yīng)的發(fā)布模塊接收針對應(yīng)用程序發(fā)出的啟動指令。
[0017]其中,發(fā)布模塊能夠與應(yīng)用開發(fā)框架相互配合,使得基于該應(yīng)用開發(fā)框架實現(xiàn)的應(yīng)用程序能夠通過該發(fā)布模塊完成啟動操作,從而省去了手工敲代碼啟動應(yīng)用程序的繁瑣操作。
[0018]步驟S120:發(fā)布模塊讀取應(yīng)用程序中包含的配置文件,并對該配置文件進(jìn)行解析后將解析結(jié)果發(fā)送給應(yīng)用開發(fā)框架。
[0019]其中,為了簡化開發(fā)人員的工作量,上述應(yīng)用程序中包含的配置文件可以通過以下方式創(chuàng)建:預(yù)先設(shè)置配置文件模板庫,在配置文件模板庫中包含多個配置項以及各個配置項的格式規(guī)范;從該配置文件模板庫中選擇至少一個配置項,并根據(jù)所選擇的配置項的格式規(guī)范為其設(shè)置對應(yīng)的項目內(nèi)容。由于預(yù)先設(shè)置了配置文件模板庫,因此,開發(fā)人員可以直接根據(jù)模板庫中的格式規(guī)范快速生成配置文件,提高了配置文件的生成效率,簡化了開發(fā)人員的工作量。相應(yīng)地,發(fā)布模塊通過以下方式對上述配置文件進(jìn)行解析:獲取配置文件中包含的各個配置項;從配置文件模板庫中查詢各個配置項的格式規(guī)范;根據(jù)格式規(guī)范對各個配置項進(jìn)行解析。
[0020]步驟S130:由上述應(yīng)用開發(fā)框架將解析結(jié)果加載到內(nèi)存中,以供應(yīng)用程序在運行過程中讀取。
[0021]其中,應(yīng)用開發(fā)框架加載到內(nèi)存中的解析結(jié)果為配置文件中包含的各個配置項的具體內(nèi)容。具體地,配置文件中的配置項可以是與應(yīng)用開發(fā)框架相關(guān)的環(huán)境變量,也可以是與應(yīng)用程序相關(guān)的環(huán)境變量。另外,為了便于應(yīng)用程序訪問內(nèi)存中的解析結(jié)果,在該應(yīng)用開發(fā)框架中還設(shè)置有用于供應(yīng)用程序讀取內(nèi)存中加載的解析結(jié)果的讀取接口。
[0022]在上述實施例中,能夠通過發(fā)布模塊來解析配置文件,并通過應(yīng)用開發(fā)框架將解析結(jié)果加載到內(nèi)存中,應(yīng)用程序的開發(fā)人員不必提供解析配置文件的工具,從而減少了應(yīng)用程序的開發(fā)成本。
[0023]圖2示出了本發(fā)明一個具體實施例提供的在應(yīng)用程序啟動時加載配置文件的方法的流程圖。在該具體實施例中,以應(yīng)用開發(fā)框架為Hero框架為例進(jìn)行說明,為了便于理解,先對本發(fā)明中的Hero框架進(jìn)行簡單介紹=Hero框架是發(fā)明人提出的一種高性能的開發(fā)框架,其中的代碼可以通過Go語言進(jìn)行編譯,由于Go語言專門針對多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化,因此使用Go語言編譯的程序具有執(zhí)行速度更快,且更加安全、支持并行進(jìn)程等諸多優(yōu)勢。正是由于Hero框架具備上述優(yōu)勢,因此,當(dāng)開發(fā)人員對某個接口的性能要求較高時,如果通過普通開發(fā)框架可能要部署十臺服務(wù)器才能實現(xiàn)目標(biāo)值,而通過本發(fā)明中的Hero框架只需一臺服務(wù)器就能夠?qū)崿F(xiàn)目標(biāo)值。由此可見,本發(fā)明中的Hero框架尤其適用于高性能領(lǐng)域的開發(fā)服務(wù)。具體地,在Hero框架中提供了規(guī)范的組件池,組件池中包含多個不同的組件,其中不同的組件可以完成不同的處理邏輯并具有接收數(shù)據(jù)的接口和發(fā)送數(shù)據(jù)的接口,從而使得用戶可以根據(jù)自身需求從組件池中選擇兩個以上的組件,將其利用各自的接收數(shù)據(jù)的接口和發(fā)送數(shù)據(jù)的接口依次串連來實現(xiàn)具體的業(yè)務(wù)需求。由此可見,該框架中建立了規(guī)范性的組件池,使得放入組件池的組件具有相同的結(jié)構(gòu)特點,直接將多個組件簡單串連即可實現(xiàn)一定的功能,顯著降低了開發(fā)人員編寫復(fù)雜代碼的成本。具體地,組件池中的每個組件可以符合如下約束規(guī)則:每個組件包括:事前處理單元、業(yè)務(wù)邏輯單元和事后處理單元;