gpt4 book ai didi

java - Spring XML 与 Java 类中变量的初始化

转载 作者:行者123 更新时间:2023-12-01 23:47:10 25 4
gpt4 key购买 nike

如果我们通过 spring 注入(inject)一个变量值,并在类本身中初始化它,那么会选择什么,为什么?例如

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>

最佳答案

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;
}
}

该值将是 Spring 设置的值。在您的示例中,“我是消息文本”。

在后一种情况下,它看起来像这样:

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

然后该值为“加载的 bean 中设置的消息”。

关于java - Spring XML 与 Java 类中变量的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16844898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com