只是一個簡單而快速的問題。我有一個程序,它有幾個類,用於讀取.properties文件中的信息。將文件從類傳遞給類作爲構造函數中的參數,還是直接在每個類中打開文件是更好的做法?我怎樣才能讓我的配置文件從課堂到課堂?
0
A
回答
2
如果你打算親自去做,我建議你創建一個配置類,它通過構造函數接受文件,並將屬性值讀入成員變量。然後每個需要配置的類都通過它的構造函數接受一個Configuration類。但是,幾乎沒有人這樣做,而是使用像Spring這樣的框架,它爲您處理屬性注入。
在春天,它會是這個樣子:
<!-- application context xml file -->
<context:property-placeholder location="file:///some/path/to/file" />
在Java類中
然後:
public class SomeClass {
@Value("${some.property}")
private String someProp;
@Value("${some.other.prop}")
private Integer someOtherProp;
// ...
}
啓動應用程序時性能得到注入類。
0
我的建議是有一個Util類加載屬性文件並從該Util獲取值到所需的類。
注意:我不認爲你有任何加載屬性文件的問題。
0
我建議你創建一個不可變的類,它接受文件作爲構造函數參數並設置所有的實例變量。我會稱之爲PropertyConfiguration。然後,因爲課程是不可改變的,所以您不必擔心將其傳遞給每個人。你甚至可以擁有一個擁有它的課程。
例如,下面的代碼會讓你有一個很好的設置,以便在項目範圍內有幾件事情可用。我只是要確保共享的任何東西都是不可變的,以確保線程安全。
public class ClientUtils {
private static ClientContext _clientContext = null;
public static void setClientContext(ClientContext cc) {
_clientContext = cc;
}
public static ClientContext getContext() {
return _clientContext;
}
}
public class ClientContext {
private final Configuration _configuration;
public ClientContext(Configuration config){
_configuration = config;
}
public Configuration getClientContext() {
return _configuration;
}
}
0
如果你的程序中包含它不必是編譯的一部分,可以從部署到部署的變化數據,你必須把它加到屬性文件:(比如像數據庫連接字符串,電子郵件地址)。
爲了防止您需要此操作,我添加了訪問屬性文件的代碼。 刪除文件build目錄。
Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("credentials.properties"));
相關問題
- 1. 從課堂設置一個數組,並讓他在課堂外
- 2. PHP:我怎樣才能讓spl_autoload在全球範圍內的課堂上工作?
- 3. 我怎樣才能讓課程「重設」?
- 4. 在Ruby中。我如何從課堂內部自我定義中提到課堂?
- 5. 我如何選擇課堂?
- 6. 我怎樣才能在我的課
- 7. 如何讓我的課程使用課堂外的數組?
- 8. 如何在我的主課堂中使用我的第二堂課?
- 9. 我應該在課堂中包裝我的課堂自定義例外嗎?
- 10. com.google.gson.internal.LinkedTreeMap無法投射到我的課堂
- 11. 我怎麼能在課堂上得到變量
- 12. 如何從課堂外進入課堂變量
- 13. 如何將課堂上的練習從課堂傳遞給另一課程?
- 14. require_once不能用於課堂?
- 15. 如何從課堂脫身
- 16. Django課堂問題
- 17. Google課堂縮圖
- 18. 遇到課堂問題
- 19. 在課堂教學中使用自我
- 20. 我該如何醃製一堂課?
- 21. 我的課堂如何表現得像一個靜態課程?
- 22. PHP常量在課堂內設置,但我需要現在在課堂外改變它,這可以做到嗎?
- 23. 我怎樣才能得到在課堂上定義的變量,並將它用在別的地方
- 24. 如何讓Jbutton開辦另一堂課?
- 25. 超級課後序列化子課堂?
- 26. 課堂內的Dictonaries和Lambda?
- 27. 更好的課堂設計
- 28. Laravel的課堂設計
- 29. 隱藏課堂上的RNG
- 30. 在課堂上的OnPropertyChanged