亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 spring 容器中初始化一個 bean 并在任何地方使用它

如何在 spring 容器中初始化一個 bean 并在任何地方使用它

慕絲7291255 2021-12-01 19:39:20
實際上,我正在使用 spring 來開發 Web 應用程序,我面臨的問題是,一旦加載了 spring 容器,我就會初始化一個 bean,現在我必須在程序的不同部分使用該 bean。我有 1. 我可以在任何地方獲取應用程序上下文并獲取那個 bean,但是根據我的問題,我應該得到那個 bean,而不必一次又一次地編寫冗余代碼。所以有什么方法可以初始化那個 bean 并使用它直接在我的程序中的任何地方。
查看完整描述

2 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

你不應該直接從上下文中獲取你的 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 組件本身才能進行注入。


Spring 中的依賴注入實際上分為三種類型:構造函數注入、字段注入和 setter 注入。Spring 團隊推薦使用基于構造函數的方法,這篇文章為這一點帶來了非常好的論據:https : //blog.marcnuri.com/field-injection-is-not-recommended/


您可以參考此鏈接以獲取有關基于構造函數的注入的更多信息:https : //www.baeldung.com/constructor-injection-in-spring


查看完整回答
反對 回復 2021-12-01
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

如果你已經初始化了你的 bean,你可以通過 @Autowired 從你的 Spring 應用程序中的每個組件訪問它。


private SomeClass myBean;


 @Autowired   

public void setMyBean(SomeClass myBean){

      this.myBean =myBean;

    }

要不就:


@Autowired

private SomeClass myBean;

我更喜歡第一種方法,在我眼里看起來更漂亮。


查看完整回答
反對 回復 2021-12-01
  • 2 回答
  • 0 關注
  • 237 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號