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

目录

  • 一、问题
  • 二、处理
  • 三、拓展

一、问题

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

<dependency>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-configuration-processorartifactId>
	<optional>trueoptional>
dependency>

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

二、处理

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

三、拓展

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

provided
true

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

你可能感兴趣的:(Java)