![](/img/trans.png)
[英]Spring initialization not working when the library is added as a dependency
[英]Java library for asynchronous dependency initialization
我正在做一個用 Java 編寫的項目,它有一個內部編寫的依賴初始化系統。 我一直在尋找一個強大的第三方庫來管理它,這樣我們就不必對其進行太多維護。 到目前為止,我的搜索並不是很有幫助。 大多數結果都返回建議 Spring,但我認為這不能滿足我們的需求。
我們需要圖書館外的東西:
init()
后完成此操作,而應允許服務回調。 這是因為大多數服務都在調用我們的 web 服務作為其初始化的一部分。我已經看過 Spring 和 Guice,據我所知,它們不會工作,因為它們不允許您的依賴項處於中間初始化 state,如果您要求未初始化的,它們將阻塞線程object,直至完全建成。 我也不確定他們是否允許取消初始化。
我完全意識到這可能非常具體,並且可能是一個奇怪的系統(它很舊),所以我預計可能沒有內部解決方案的替代方案。
服務初始化邏輯的初始化程序。 這對於分布式服務非常有用,可以滿足以下幾個要求:
在初始化期間,應用服務可以檢查組件的健康狀況並相應地反映出來。
由於它主要用於連接服務、重試機制和故障處理,因此依賴服務的健康檢查旨在單獨管理。
用法示例:
Initializer initializer = Initializer.builder().circuitBreaker(circuitBreaker)
.mandatoryTask("initDB", () -> {return initDB();})
.mandatoryTask("initMessagingService", () -> {return initMessagingService();})
.nonMandatoryTask("initStats", () -> {return initStats();})
.postInitTask("serveRequests", () -> {return serveRequests();})
.build();
initializer.initAsync();
注意:我是這個 Initializer 的作者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.