spring-boot - Spring Boot:@Value 返回 null
问题描述
我是springmvc的新手,所以这个问题可能听起来很愚蠢。
我对这个 Spring Boot 有类似的问题:@Value 总是返回 null。我有的例子:
系统属性
<sysproperty key="bar" value="bar_value" />
豆配置
@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;
}
}
推荐阅读
- javascript - 当我单击任何一个子菜单链接并移至其他页面时,是否有任何方法可以使用 JavaScript 保持打开子菜单,但子菜单保持打开状态?
- javascript - 脚本在 WebView 中不适用于 react-native
- firebase - 按Firestore中字段的内容删除文档(颤振)
- deep-learning - 将base64图像请求发送到torchserve预测api
- android - 如何获取Android SearchView语音图标点击事件
- javascript - 将 .forEach 切换到循环?
- java - windows 10下安装cygwin并编译openjdk8
- ios - 编译器如何证明内存安全?
- java - 运行简单范围报告配置 TestNG 时出现 NoClassDefFoundError
- angular - 如何禁用内容区域在鼠标滚动时移动