我是springmvc的新手,所以这个问题听起来可能很愚蠢。
我有类似于这个Spring Boot的问题:@Value总是返回null。我有一个例子:
系统属性
<sysproperty key="bar" value="bar_value" />
Bean配置
@Configuration
public class Foo {
@Value("${bar}")
private String bar;
@Bean(name = "getBar")
public String getBar() {
return bar;
}
}
Access Bean(index.jsp(
String bar = webApplicationContext.getBean("getBar", String.class); // returns null instead of "bar_value"
但是,如果我将Bean配置更改为
@Configuration
public class Foo {
@Value("${bar}")
@Bean(name = "getBar")
public String getBar(String bar) {
return bar;
}
}
然后访问它,返回的值是正确的,这可能是什么原因?我知道事情是由框架控制的,所以我对应用程序的实例化过程不太了解,我们非常感谢您的帮助。
请使用Setter Injection。希望它能解决你的问题。
public class Foo {
private String bar;
@Autowired
public setBar(@Value("${bar}") String bar) {
this.bar = bar;
}
// standard getter
@Bean(name = "getBar")
public String getBar() {
return bar;
}
}