使用@EnableConfigurationProperties注解,注意配置,避免失效

一、问题

项目中需要使用自定义配置,通过@ConfigurationProperties和@EnableConfigurationProperties两个注解,从yml文件中获取相关配置项。
为使用注解,在maven项目中要引入依赖
当初在网上找到的资料,导入依赖时都有加入optional项

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>

自己在使用的时候,直接复制粘贴,本地运行没问题,上线以后,发现调用自定义配置的代码,报空指针错误,才发现@EnableConfigurationProperties注解失效,无法正确调用配置。

二、处理

之所以发生这个问题,在于依赖缺失,查看线上的lib文件夹下,都没有spring-boot-configuration-processor这个jar包,当然会报空指针错误。
处理方式就是移除optional配置项。
关于optional,推荐大家查阅这篇博客Maven optional关键字透彻图解,图文配合,易于理解。

三、拓展

maven中的可选依赖和提供范围的区别

<scope>provided</scope>
<optional>true</optional>

以我个人理解来看,optional的作用是解决要不要引入的问题,有需要就显式引入,不需要就节省一些,避免引入不必要的包。scope的作用是决定要不要参与打包
关于scope,推荐查阅博客maven中scope标签详解

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值