java - Spring Boot - 将应用程序属性注入 Util 类变量
问题描述
我想按标题问一个问题。
我有一个 util 类,如下所示:
@PropertySource("classpath:application.properties")
public class ServiceUtils {
@Value("${dummy}")
public static String SOME_VAR;
@Value("${dummy}")
// Baeldung says that it's not possible to inject props to static vars
public void setSomeVar(String var) {
SOME_VAR = var;
}
}
当我启动应用程序并进行调试时,上述变量SOME_VAR
为null
:(
我知道我在 Util 类中使用它,我认为这是一种反模式。
有人可以帮助我了解我需要纠正什么才能使其正常工作吗?
问候
解决方案
Spring 不允许您在静态变量中注入值。改用非静态的。
如果它必须是静态的,请执行以下操作:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class ServiceUtils {
public static String SOME_VAR;
@Value("${dummy}")
public void setSomevar(String value) {
SOME_VAR= value;
}
}
推荐阅读
- grails - 无法覆盖 LoginController 的 authFail()
- git - 仅将特定文件夹和文件从本地主服务器推送到存储库
- laravel - 如何使用 nginx 部署 laravel 后端?
- .net - 如何防止 McAfee 与 .Net 应用程序上的 APM 代理交互?
- php - 如何从 Elasticsearch 中获取不同的记录
- c++ - 简单聊天机器人的分段错误(核心转储)
- node.js - NodeJs API msrestazure 代理问题
- swift - 如何从 Firebase 存储中获取 imageUrl 并将其存储在 Xcode 10 swift 4.2 中的 firebase 数据库中
- javascript - SVG contentDocument null 当SVG在Ionic3中动态加载时
- python - 使用宽松字典映射列中的值