Spring Boot: @Value returns null



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

最新更新