@ConfigurationProperties注解的使用经验

@ConfigurationProperties注解的使用经验

开发时遇到The Element [] were left unbound. 问题,记录一下解决过程

项目想使用springboot方便的properties文件配置功能,先介绍一下使用方式:

使用方式

现在Applcaition类入口添加@ConfigurationProperties,并传入想要自动绑定配置的类,例如:

@SpringBootApplication
@EnableConfigurationProperties({AliyunCsClientConfig.class, DataSourceConfig.class})
public class Jishiv3UserApplication extends SpringBootServletInitializer {
    ...
}

在想要使用自动绑定的类上,使用@ConfigurationProperties(prefix = "xxx", ignoreUnknownFields = false)注解标注配置文件的前缀和是否忽略不能解析的属性接着在类中的属性名就可以配置想要绑定的变量名。例如:

@Setter
@Configuration
@ConfigurationProperties(prefix = "aliyun", ignoreUnknownFields = false)
public class AliyunCsClientConfig {
	private String region;

    private String ramAk;

    private String ramAs;
    
    ...
}
    

相应的,我们的配置文件:

# applicaton.properties

...

aliyun.region = cn-hangzhou
aliyun.ramAk = xxx
aliyun.ramAs = yyy

..

可以看到${prefix}.${property}的变量,直接可以映射到想要自动绑定的类中。这里绑定的规则时宽松绑定,及下环线驼峰命名都会进行统一。

需要注意的点

我们配置类想要绑定的属性一定要带上Setter方法,不然会报错The Element [xxx] were left unbound. 问题。

参考

下面这篇文章讲自动绑定的原理,很详细:

springboot中@ConfigurationProperties注解的工作原理-spring-hz

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值