Springboot 项目使用@Value(““)获取不到配置参数

问题描述:在项目中,通常会用一个配置类来接收并管理项目中的配置参数,并且该类的属性值都是静态的,但是使用@Value("")不能直接将获取到的yml文件中的配置参数直接赋值给静态属性,可以参考如下的解决办法:

全局配置类

package com.hcy.message.config;

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

/**
 * @Description 系统参数配置
 * @Author lijunjie
 * @CreateDate 2020/9/21 13:17
 * @UpdateUse
 * @UpdateDate
 * @UpdateRemark
 * @版本 1.0
 **/
@Component
public class SystemConfig {

  /**********************************短信服务配置参数**************************/
    public static String SMS_URL; //短信接口地址

    public static String SMS_LOGIN_METHOD; //登录方法名称

    public static String SMS_LOGIN_USER_NAME; //登录用户名

    public static String SMS_LOGIN_PASSWORD; //登录密码

    public static String SMS_SEND_SMS_METHOD; //发送短信的方法

    @Value("${sms.url}")
    public  void setSmsUrl(String smsUrl) {
        SMS_URL = smsUrl;
    }

    @Value("${sms.loginMethod}")
    public  void setSmsLoginMethod(String smsLoginMethod) {
        SMS_LOGIN_METHOD = smsLoginMethod;
    }

    @Value("${sms.loginUserName}")
    public  void setSmsLoginUserName(String smsLoginUserName) {
        SMS_LOGIN_USER_NAME = smsLoginUserName;
    }

    @Value("${sms.loginPassword}")
    public  void setSmsLoginPassword(String smsLoginPassword) {
        SMS_LOGIN_PASSWORD = smsLoginPassword;
    }

    @Value("${sms.sendSmsMethod}")
    public  void setSmsSendSmsMethod(String smsSendSmsMethod) {
        SMS_SEND_SMS_METHOD = smsSendSmsMethod;
    }
}

yml 文件中的配置格式如下

# 短信接口配置
sms:
   url: http://127.0.0.1:8888//SMSSendInterface
   loginMethod: login
   loginUserName: admin
   loginPassword: admin
   sendSmsMethod: sendShortMessDir

 

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页