2013-05-30 39 views
0

如果我們通過spring注入一個變量值並在類中初始化它,那麼會選擇什麼?爲什麼? 例如Spring XML中的變量初始化與Java類

public class Test { 
    String message; 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 
} 

Springcontext.xml

<bean id="test" class="com.testpac.Test" 
     <property name="message" value="i am message text" /> 
    </bean> 

回答

3

Spring首先調用構造函數,然後調用構造的實例的setter方法。

如果您的意思是您將在聲明變量的初始值或構造函數中設置該值,則Spring設置值將優先。

如果你的意思是你在從Spring獲取bean之後調用setter,它將覆蓋Spring設置的任何東西。

前者是這樣的代碼:

public class Test { 
    String message = "Initialized value in code"; 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 
} 

,值將是什麼春天將它設置爲。在我的例子中,「我是消息文本」。

在後一種情況下,它看起來像這樣:

Test bean = (Test) appCtx.getBean("test"); 
bean.setMessage("message set in loaded bean"); 

然後該值是「消息中加載的豆設定」,來代替。