spingboot项目,定义参数到配置文件并获取

Posted chichung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spingboot项目,定义参数到配置文件并获取相关的知识,希望对你有一定的参考价值。

假设一个需求是这样的:项目要求使用阿里云的 OSS 进行文件上传。

我们知道,一个项目一般会分为开发环境、测试环境和生产环境。OSS 文件上传一般有如下几个参数:appKey、appSecret、bucket、endpoint 等。不同环境的参数都可能不一样,这样便于区分。按照传统的做法,我们在代码里设置这些参数,这样做的话,每次发布不同的环境包都需要手动修改代码。这个时候,我们就可以考虑将这些参数定义到配置文件里面。

创建实体类 AliyunAuto,并编写以下代码:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "oss")
public class AliyunAuto {

    private String appKey;

    private String appSecret;

    private String bucket;

    private String endPoint;

    public String getAppKey() {
        return appKey;
    }

    public void setAppKey(String appKey) {
        this.appKey = appKey;
    }

    public String getAppSecret() {
        return appSecret;
    }

    public void setAppSecret(String appSecret) {
        this.appSecret = appSecret;
    }

    public String getBucket() {
        return bucket;
    }

    public void setBucket(String bucket) {
        this.bucket = bucket;
    }

    public String getEndPoint() {
        return endPoint;
    }

    public void setEndPoint(String endPoint) {
        this.endPoint = endPoint;
    }

    @Override
    public String toString() {
        return "AliyunAuto{" +
                "appKey=‘" + appKey + ‘‘‘ +
                ", appSecret=‘" + appSecret + ‘‘‘ +
                ", bucket=‘" + bucket + ‘‘‘ +
                ", endPoint=‘" + endPoint + ‘‘‘ +
                ‘}‘;
    }
}

 

其中,ConfigurationProperties 指定配置文件的前缀属性,实体具体字段和配置文件字段名一致,如在上述代码中,字段为 appKey,则自动获取 oss.appKey 的值,将其映射到 appKey 字段中,这样就完成了自动的注入。如果我们增加一个属性,则只需要修改 Bean 和配置文件即可,不用显示注入。

以上是关于spingboot项目,定义参数到配置文件并获取的主要内容,如果未能解决你的问题,请参考以下文章

SpingBoot之配置文件的值注入问题

SpingBoot之多Profile文件

SpingBoot注解

SpingBoot —— RestTemplate的配置

android自定义serviceloader接口隔离及获取自定义properties参数配置

自定义jar配置文件问题?