SpringBoot加载自定义yml中的配置参数

需要读取的yml配置数据

SpringBoot加载自定义yml中的配置参数_第1张图片

设置一个专用类 YmlConfigBean.java
package com;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.List;

/**
 * 配置文件参数读取
 */
@Component
public class YmlConfigBean {
    public static String GENERATE_CONFIG_BASE;

    public static String GENERATE_FILE_PATH;

    public static List<String> GENERATE_PARAM_NAME;

    @Value("${generate.config.base}")
    private void setGenerateConfigBase(String key) {
        GENERATE_CONFIG_BASE = key;
    }

    @Value("${generate.file.path}")
    private void setGenerateFilePath(String key) {
        GENERATE_FILE_PATH = key;
    }

    @Value("#{'${generate.param.name}'.split(',')}")
    private void setGenerateParamName(List<String> key) {
        GENERATE_PARAM_NAME = key;
    }

}
近期碰到了代码静态扫描,说上面的不合规,那么来改造一下合规的写法。

YmlConfigBean仍然保留,只不过不使用Value注解

package com;

import org.springframework.stereotype.Component;
import java.util.List;

/**
 * 配置文件参数读取
 */
@Component
public class YmlConfigBean {

    public static volatile String GENERATE_CONFIG_BASE;

    public static volatile String GENERATE_FILE_PATH;

    public static volatile List<String> GENERATE_PARAM_NAME;

}

新建一个set方法

package com;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.List;

/**
 * 配置文件参数读取
 */
@Component
public class YmlConfigBeanSet {

    @Value("${generate.config.base}")
    private void setGenerateConfigBase(String key) {
        GENERATE_CONFIG_BASE = key;
    }

    @Value("${generate.file.path}")
    private void setGenerateFilePath(String key) {
        GENERATE_FILE_PATH = key;
    }

    @Value("#{'${generate.param.name}'.split(',')}")
    private void setGenerateParamName(List<String> key) {
        GENERATE_PARAM_NAME = key;
    }

}

采用上述方式修改,原使用Bean的方法不需任何改动,可以通过代码扫描。

说明:

添加@Component注解,将类YmlConfigBean.java交给Spring管理,
这样便可以将YmlConfigBean中的静态常量作为系统全局常量使用.

OK,整理到这吧!

如有不正确之处,还望指正!书写不易,觉得有帮助就点个赞吧!☺☺☺

你可能感兴趣的:(工作总结,spring,boot,java)