簡體   English   中英

@Lazy 自引用導致的循環依賴。 Spring 2.6的任何解決方法?

[英]Circular dependencies due to @Lazy self reference. Any workaround for Spring 2.6?

我們通過構造函數注入@Lazy對 self 類型的引用來使用循環依賴,這樣我們就可以使用帶有@Transactional和其他注釋的本地方法。

現在我們正在嘗試更新到默認情況下禁止循環引用的 Spring Boot 2.6。

有沒有比@Lazy自引用更好的方法來調用本地方法並獲得@Transactional和其他注釋?

您可以使用@Resource注解進行自我注入

class MyClass {
   @Resource
   private MyClass self;
}

春季文檔中的段落

從 4.3 開始,@Autowired 還考慮注入的自引用(即,引用回當前注入的 bean)。 請注意,自注入是一種后備。 對其他組件的常規依賴始終具有優先權。 從這個意義上說,自我參考不參與常規的候選人選擇,因此尤其不是主要的。 相反,它們總是以最低優先級結束。 在實踐中,您應該僅將自引用用作最后的手段(例如,通過 bean 的事務代理在同一實例上調用其他方法)。 在這種情況下,考慮將受影響的方法分解為單獨的委托 bean。 或者,您可以使用@Resource,它可以通過其唯一名稱獲取返回到當前 bean 的代理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM