Not registered via @EnableConfigurationProperties or marked as Spring component

Posted peanut_zh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Not registered via @EnableConfigurationProperties or marked as Spring component相关的知识,希望对你有一定的参考价值。

一、问题来源

  学习Spring Boot 时,利用@ConfigurationProperties(prefix = "")来绑定属性时报错

二、报错信息

Not registered via @EnableConfigurationProperties or marked as Spring component

 

三、解决过程

  用可爱的百度一搜,小白们也碰到一样的问题,回答也不少,

  https://blog.csdn.net/qq_42635345/article/details/85761314比如这位仁兄。

  我解决的时候在@ConfigurationProperties注解下,添加了@EnableConfigurationProperties就OK了,至于在pom.xml中配置

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

  依赖来解决此问题,应该是不对题的,这段代码的作用是配置文件处理器,解决最开始粉色背景部分(Spring Boot Configuration Annotation Processor not found in classpath)的问题。所以我将这段代码注释后,并没有报错。如下图所示。

四、总结

  SpringBoot中,将类中的属性和配置文件中的配置进行绑定时出现的问题

五、延伸

  @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;

  只有这个组件是容器中的组件,容器才能提供的@ConfigurationProperties功能;所以需要配置@Component才可使用 。
  

 

 

 

以上是关于Not registered via @EnableConfigurationProperties or marked as Spring component的主要内容,如果未能解决你的问题,请参考以下文章

Not registered via @EnableConfigurationProperties, | A component required a bean of type ‘xxx‘

Not registered via @EnableConfigurationProperties, | A component required a bean of type ‘xxx‘

Not registered via @EnableConfigurationProperties, | A component required a bean of type ‘xxx‘

Not sending via email

ORA-16032 Can not Start Instance via srvctl but via sqlplus is fine [ID 1062071.1]

Spring Cloud Zuul CircuitBreaker All Routes via TurbineStream Not Turbine-AMQP