Springboot使用@Value注解,无法注入yml配置文件,显示变量为null,解决办法

使用@Value  调用yml文件的配置数据,Debug显示,变量为null。
原因是:

1.导包必须要是:

import org.springframework.beans.factory.annotation.Value;

2.定义变量或者方法时候不能加静态关键字:static     <====  一定注意此关键字
        因为@Value不能直接注入值给静态属性,Spring 不允许(或者说不支持)把值注入到静态变量中。也可以说是Springboot不建议这么做。

3.特殊情况:个人不建议使用,主要是觉得麻烦。 

非要使用静态变量,可以迂回一下,使用set方法注入,比如:

package com.wanuw.utils;

import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Value;
//交给IOC容器管理
@Component
public class TencentCOSUtil {

    // COS的SecretId
    private static String secretId;

    @Value("${tencent.cos.secretId}")
    public void setSecretId(String secretId) { //此set方法必须不是静态的!!
        this.secretId = secretId;
    }
}

此方法必须将使用@Value的类加入IOC容器重管理才可以,本实例使用的是@Component。
加入IOC容器注解如下:

(1)@Component          其余层使用

(2)@Service                service层使用

(3)@Controller            controller层使用

(4)@Repository          dao层使用

=============================分割线===================================

本文章只是个人观点,若有不对的地方请留言指教。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值