Spring Boot自定义配置取值方式

一、@Value方式

application.yml配置如下

filePath: /home/web/webfiles

使用@Value注解方式获取filePath的值

@Value("${filePath}")
private String filePathPrefix;

二、配置类方式

application.yml中配置如下

captcha:
  secretId: AKIDrlQq5s5ze7KHzdEkPnuoSp9OO7ambbI6
  secretKey: tgOxRL7Dgx69E9rMccMr5BLHvHNDm69J
  endPoint: captcha.tencentcloudapi.com
  captchaType: 9
  captchaAppId: 2066740932
  appSecretKey: 011GG45xitAg9WZ89E8Ohpg**

可以创建一个属性配置类,使用@ConfigurationProperties将该类变成Spring的一个组件,使程序在启动时可以给这个类的对象完成赋值。

@Data
@Component
@ConfigurationProperties(prefix = "captcha")
public class CaptchaProperties {
    /**
     * 腾讯云secretId
     */
    private String secretId;
    /**
     * 腾讯云secretKey
     */
    private String secretKey;
    /**
     * 腾讯云滑块验证接入地域域名
     */
    private String endPoint;
    /**
     * 腾讯云滑块验证类型
     */
    private Long captchaType;
    /**
     * 腾讯云滑块验证AppId
     */
    private String captchaAppId;
    /**
     * 腾讯云滑块验证app密钥
     */
    private String appSecretKey;
}

想获取这些属性值时,可以使用自动注入的方式获取对象的属性值。

详解:

(1)在@ConfigurationProperties注释中有两个属性:
  locations:指定配置文件的所在位置
  prefix:指定配置文件中键名称的前缀(我这里配置文件中所有键名都是以web.开头)
(2)@ConfigurationProperties 的基本用法非常简单:我们为每个要捕获的外部属性提供一个带有字段的类。请注意以下几点:

  • 前缀定义了哪些外部属性将绑定到类的字段上
  • 根据 Spring Boot 宽松的绑定规则,类的属性名称必须与外部属性的名称匹配
  • 我们可以简单地用一个值初始化一个字段来定义一个默认值
  • 类本身可以是包私有的
  • 类的字段必须有公共 setter 方法
    (3)Spring宽松绑定规则(relaxed binding)
    该规则意味着当我们在配置属性类中是以驼峰命名法来书写属性名称时,在配置文件中可以使用以下几种方式去和驼峰命名的属性进行映射:
captcha:
  secretId: AKIDrlQq5s5ze7KHzdEkPnuoSp9OO7ambbI6
  secretid: AKIDrlQq5s5ze7KHzdEkPnuoSp9OO7ambbI6
  secret-id: AKIDrlQq5s5ze7KHzdEkPnuoSp9OO7ambbI6
  secret_id: AKIDrlQq5s5ze7KHzdEkPnuoSp9OO7ambbI6
  SECRET_ID: AKIDrlQq5s5ze7KHzdEkPnuoSp9OO7ambbI6
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值