![](/img/trans.png)
[英]How to initialize MongoClient once in Spring Boot and use its methods?
[英]how to initialize a bean in spring container once and use it everywhere
實際上,我使用Spring開發Web應用程序時,面臨的問題是,一旦加載Spring容器,我就要初始化一個bean,現在我必須在程序的不同部分中使用該bean。 我具有1.的約束。我可以在任何地方獲取應用程序上下文並獲取該bean,但是根據我的問題,我應該獲取該bean而不必一次又一次地編寫該冗余代碼。因此,有什么方法可以初始化該bean並使用它直接在我程序中的任何地方。
您不應該直接從上下文中獲取bean,而應該@Autowire它們並讓Spring為您注入它。
這是通過構造函數注入的兩個依賴項的示例:
@Component
public class Car {
private final Engine engine;
private final Transmission transmission;
@Autowired
public Car(Engine engine, Transmission transmission) {
this.engine = engine;
this.transmission = transmission;
}
}
請注意,您的類必須是Spring Component本身,才能進行注入。
在Spring中,實際上有三種類型的依賴項注入:構造函數,字段和setter注入。 Spring團隊建議使用基於構造函數的方法,而本文為這一點帶來了很好的論據: https : //blog.marcnuri.com/field-injection-is-not-recommended/
您可以參考此鏈接以獲取有關基於構造函數的注入的更多信息: https : //www.baeldung.com/constructor-injection-in-spring
如果您已經初始化了bean,則可以從Spring應用程序中的每個組件通過@Autowired訪問它。
private SomeClass myBean;
@Autowired
public void setMyBean(SomeClass myBean){
this.myBean =myBean;
}
要不就:
@Autowired
private SomeClass myBean;
我更喜歡第一種方法,在我眼中看起來更奇特。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.