我正在 Spring Boot 中構建一個可重用的庫,它可以呼叫 Rest API 并進行一些驗證。這將構建為 JAR 目標是通過在其他 spring boot 專案中添加 pom.xml 來使用此庫作為 maven 依賴項。
問題是庫如何知道要加載哪些環境屬性。因為它沒有在任何服務器上運行。 例如:呼叫應用程式將作為依賴項包含并部署在dit環境中。我希望庫能夠獲取諸如url、tokens 之類的dit屬性 關于如何實作這一點的任何建議。
uj5u.com熱心網友回復:
如果您使用application.properties,您可以像這樣通過您的庫檔案擴展您的應用程式檔案。或者使用@PropertySource.
uj5u.com熱心網友回復:
如果你想創建可重用的庫,你應該避免從任何特定位置讀取配置。雖然此規則可能有一些例外,但通常從特定位置(例如環境變數或屬性檔案)讀取配置將限制庫的可重用性和可測驗性。
我認為最好的方法是將您的代碼一分為二。庫本身對 Spring 沒有任何依賴。您可以使用建構式注入、構建器或其他合適的模式輕松配置它。例如,如果要設定要連接的 URL,可以使用建構式:
public class ExampleClient {
private final String url;
public ExampleClient(String url) {
this.url = url;
}
// the rest of the class
}
由于您的庫不依賴于 Spring 或任何環境,因此很容易進行測驗。并且增加了可重用性,因為它不對運行的環境做任何假設。即使您打算將它用于單個環境,有一天環境或需求可能會發生變化。
然后,您可以創建自己的自動配置,該配置將創建ExampleClient實體并使用適當的 URL 對其進行配置。它將如何獲取 URL 取決于您的特定要求,但在大多數情況下最好使用Externalized Configuration。它會給你很大的靈活性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343527.html
