@EnableConfigurationProperties Javadocs对于;标准春豆“;?

@EnableConfigurationProperties Javadocs对于;标准春豆“;?,java,spring,spring-boot,Java,Spring,Spring Boot,对于@EnableConfigurationProperties的值元素,说明: 使用Spring快速注册带注释bean的便捷方法。无论此值如何,标准SpringBean也将被扫描 我被这句话弄糊涂了:“不管这个值是多少,标准SpringBean也会被扫描。”我不确定在这个上下文中“标准SpringBean”是什么,它与“@ConfigurationProperties注释Bean”有什么不同。听起来好像有一类bean总是被扫描配置属性,而另一类则不会 据我所知,非@ConfigurationP

对于
@EnableConfigurationProperties
元素,说明:

使用Spring快速注册带注释bean的便捷方法。无论此值如何,标准SpringBean也将被扫描

我被这句话弄糊涂了:“不管这个值是多少,标准SpringBean也会被扫描。”我不确定在这个上下文中“标准SpringBean”是什么,它与“
@ConfigurationProperties
注释Bean”有什么不同。听起来好像有一类bean总是被扫描配置属性,而另一类则不会

据我所知,非
@ConfigurationProperties
不会受到应用程序配置中是否存在
@enableCigurationproperties
的影响。从阅读这本书我也不完全清楚


简而言之,
注释的作用是什么?为什么需要区分“标准Spring bean”和“
@ConfigurationProperties
注释bean”?

因为
@ConfigurationProperties
不会注册Spring bean

所以如果你有

@ConfigurationProperties
public class MyCustomProperties { 
  ...
}
@EnableConfigurationProperties(value = MyCustomProperties.class)
public class MyConfiguration{
  ...
}
Spring不会为
MyCustomProperties.class

但是如果你有

@ConfigurationProperties
public class MyCustomProperties { 
  ...
}
@EnableConfigurationProperties(value = MyCustomProperties.class)
public class MyConfiguration{
  ...
}
然后将
MyCustomProperties
创建为Springbean

外部化的public@interface ConfigurationProperties注释 配置将其添加到 @如果要绑定和验证某些外部 属性(例如,来自.Properties文件)

因此注释
@ConfigurationProperties
被设计为与其他一些注释一起使用,这些注释调用springbean的创建,以便验证正在读取的属性


@EnableConfigurationProperties
只是一个额外的例子,它告诉Spring,即使在那些类上没有使用其他注释,比如
@Configuration
@Component
(例如MyCustomProperties.class),也应该使用带有
@ConfigurationProperties
的一些类来创建Springbean.

明白了。因此
@EnableConfigurationProperties
打开配置属性扫描。将
value
元素添加到其中也会为给定的类生成bean。“
@ConfigurationProperties
annotated beans”是我把注意力放错了句子的一部分。更仔细地看一下完整的上下文,“快速注册
@ConfigurationProperties
注释bean的便捷方法”并不是说它们已经是bean,而是说它将它们注册为bean。