2015-06-02 44 views
0

我有一個XML文件,其中包含代碼分析器(用於搜索漏洞)的規則。因此,它具有非常不同的規則,如方法調用(用於檢測特定調用)的參數,參數計數,任何參數類型,常量值等,檢測某些導入的規則,繼承等。但是如何將這個存儲在我的程序中? 我發現兩種方法:Java - 在程序中存儲配置的最佳方式

  1. 解析XML而掃描(到內部表示)
  2. 創建每個元素類:參數,參數值,的 參數

數是否有一個現實生活實施這件事的例子?或者你可能只是說如果你想保持的配置在你的代碼的最佳/常見的方式做在XML文件中的此

+0

隨意問一些問題和評論,我會改變這個問題 – ivan

+0

什麼是將其保留在代碼中的原因?在這種情況下,您不能在環境dev/test/prod之間移動 - 您需要更改代碼。將配置保存在同一個存儲庫中的xml文件中,並將其用作資源。 – Alex

回答

0

飼養將可能是最簡單的方法

+0

但它會要求我寫更多重複的代碼。試想一下:針對不同任務的不同規則。我也想添加包含邏輯運算符的條件 – ivan

+0

XML是我知道存儲配置的最常用方式。這些條件很可能在java代碼中處理。你可能需要編寫更多的重複代碼,但是遵循一種通用的方法,你並沒有殺死你的代碼是如何可維護的 – GregH

+0

你是對的,但我打算做一種AST(代幣是我的最終規則,它不是,或者, AND邏輯運算符),是不是那麼好? – ivan

0

- 使用代碼來這樣做。下面是簡單的初始化的良好example

Map<String, Integer> config = new HashMap<String, Integer>() 
{{ 
    put("One", 1); 
    put("Two", 2); 
    put("Three", 3); 
}}; 
+0

不一樣,但那是什麼? HashMap如何幫助我存儲配置? – ivan

+0

您沒有提供任何示例。我認爲它是簡單的鍵=值對。如果不是,那麼xml是唯一的選擇。我會引用自己的話:「將配置保存在xml文件中的同一個存儲庫中,並將其用作資源」 – Alex

0

爲了這個情況下,我喜歡使用屬性文件

的.properties的文件擴展名的主要是在Java中使用相關技術來存儲的配置參數文件一個應用程序。它們也可以用於存儲用於國際化和本地化的字符串;這些被稱爲Property Resource Bundles。

假設你在你的包path.to.your將文件與屬性文件file.properties你可以將它們包括在你的jar和恢復與getClass().getResourceAsStream("/path/to/your/file.properties")文件,那麼你可以加載包,改變參數,可以添加新的密鑰等,更多的信息與MKYong - Java Properties file examples

相關問題