開源元件Conf
專案地址:ofollow,noindex">https://github.com/zsunny6658/conf
在專案開發中,往往遇到這種情況:專案用不到一些繼承框架,但是又需要讀取本地配置檔案中的配置項。這時候,如果強行使用Spring等框架顯得有些重,如果自己去實現又很麻煩。
Conf就為這種情況提供了另外一種選擇。Conf是一個輕量級配置讀取元件。它基本上只依賴於jdk。
說明
本專案主要用於幫助開發者可以更快更方便更輕量地匯入配置檔案中的配置項,本專案基本沒有外部依賴,主要基於jdk實現。目前為1.0版本,支援yaml、xml和properties等格式的配置檔案;讀取配置的方式主要為註解方式,之後會推出更多方式。歡迎針對本專案提出isuue
用法
本專案用法非常簡單。
1.匯入本元件
目前已經發布1.0版本,開發者可以在release中下載jar包,並加入本地倉庫中引用。
下載jar包後,使用maven命令
mvn install:install-file -Dfile=<filePath> -DgroupId=<group id> -DartifactId=<artifact id> -Dversion=<version> -Dpackaging=<package type>
將依賴加入本地倉庫中,在需要使用的專案中,新增相應的依賴即可。
2.在需要進行配置讀取的變數上新增相應註解
目前主要有兩種註解@ConfPath和@SystemConfPath,需要修飾靜態變數,其value設定為需要讀取的配置項如
@ConfPath("server.port) public static String port; @SystemConfPath("system.conf.active") public static String activeFile;
通常將業務引數通過@ConfPath讀取(ConfPath無法讀取系統配置項),系統配置項通過@SystemConfPath讀取。
當前版本系統配置項只有system.conf.active和system.conf.listener前者用於在application.***檔案中指定active的配置檔案,如application-prod.xml;後者用於新增監聽器,監聽器需要實現ConfListner介面及其相對獲取配置的前置方法和後置方法。
3.入口邏輯實現
在啟動類main方法中,MainProcessor.process()方法來實現配置獲取邏輯。
快速上手
專案中Example.java和ExampleClass.java檔案中為用註解接收配置值的例子;Test為啟動類,在其main方法中呼叫了MainProcessor.process()將配置檔案中的配置加入註解所對應的類變數中。
1.屬性配置讀取
屬性配置主要有@ConfPath和@SystemConfPath,分別用於指示業務項配置和系統項配置。
@ConfPath("server.port) public static String port; @SystemConfPath("system.conf.active") public static String activeFile;
2.屬性類配置
屬性類配置的類必須用@ConfClass進行修飾,@ConfClassPrefix可以用於指示配置路徑的字首;屬性名稱則是其配置項的名稱。
@ConfClassIgnore用於指示某個屬性不用於接收配置內容;@ConfClassDefault用來指示某個屬性的預設配置值,如果配置檔案中存在相應的配置值則會覆蓋預設值。
@ConfClass @ConfClassPrefix("test") public class ExampleClass { private static String a; private static String b = "2"; @ConfClassIgnore private static String c; @ConfClassDefault("ddddd") private static String d; }
3.監聽器
TestListener為示例監聽器,其實現了ConfListener介面並實現了doBefore和doAfter方法。
public class TestListener implements ConfListner{ @Override public void doBefore() { System.out.println("before"); } @Override public void doAfter() { System.out.println("after"); } }
另外需要在配置檔案中指示類名稱:
system.conf.listener: com.sunny.TestListener
注意事項
- 配置讀取註解的變數必須為靜態變數
- 配置檔案放入resource中
- 注意避開系統配置項,否則通過ConfPath註解將無法正常獲取
敬請期待
接下來將更豐富本專案的功能,敬請期待。
聯絡交流
mail:[email protected]