一、问题:springboot中在静态类中使用@Value获取application配置文件的值为null,无法获取到值
二、描述:
在初始化的时候通过@Value注解获取值的时候,出现无论如何都获取不到配置文件的值。
@Value("${headToken}")
private static String headToken;application.properties文件
#APIKey
headToken=933AC21670134三、解决
因为我做的需求是通过post向第三方发送请求,将token设置到方法头上,发送的方法用的是静态方法,导致获取的值为null,原因是静态方法和一般的方法通过@Value获取值不同
public static Map<String, Object> sendPost(String url, String jsonParam)
{
Gson gson = new Gson();
Map<String, Object> resultMap = new HashMap<>();
HttpPost method = new HttpPost(url);
HttpResponse result =null;
method.setHeader("APIKey", getHeadToken());
try
{......省略代码将你的代码改为
private static String headToken;
@Value("${headToken}")
public void setHeadToken(String headToken){
HttpUtils.headToken = headToken;
}
public static String getHeadToken(){
return headToken;
}并且在类上面加上@Component注解,将类可以被容器发现
@Component
public class HttpUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(HttpUtils.class);
......在需要用到的地方使用getHeadToken()即可
HttpResponse result =null;
method.setHeader("APIKey", getHeadToken());
try
{
......多多指教
版权声明:本文为qq_36010615原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。