如何解决Spring Boot:@Value返回null
我是springmvc的新手,所以这个问题听起来很愚蠢。
我与此Spring Boot: @Value returns always 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;
}
}
访问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注入。希望它能解决您的问题。
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;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。