Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么@ConfigurationProperties注释不是spring核心项目的一部分?_Spring_Spring Boot - Fatal编程技术网

为什么@ConfigurationProperties注释不是spring核心项目的一部分?

为什么@ConfigurationProperties注释不是spring核心项目的一部分?,spring,spring-boot,Spring,Spring Boot,据我所知,@ConfigurationProperties注释最初是作为spring boot项目的一部分开发的。。。但是功能@ConfigurationProperties可以应用于spring启动项目之外的任何其他spring项目。。。鉴于这一前提 为什么@ConfigurationProperties不是核心框架的一部分 这是否是一个潜意识的暗示,所有对spring“核心”框架的新增强都将只对sprint boot项目进行,因此所有新项目都应该使用spring boot 这取决于你所说的核

据我所知,
@ConfigurationProperties
注释最初是作为spring boot项目的一部分开发的。。。但是功能
@ConfigurationProperties
可以应用于spring启动项目之外的任何其他spring项目。。。鉴于这一前提

为什么
@ConfigurationProperties
不是核心框架的一部分


这是否是一个潜意识的暗示,所有对spring“核心”框架的新增强都将只对sprint boot项目进行,因此所有新项目都应该使用spring boot

这取决于你所说的核心是什么意思。你必须画出一条线,关于自以为是的方法与框架/通用/可配置的特性
@configurationproperties
使用了一个非常固执己见的宽松绑定,因此它不能移动到Spring框架本身。它还认为属性以某个前缀开头。同样,这种观点对Spring Boot非常有效,但对框架来说可能有点过于严格


无论如何,我认为这个问题有点人为。您可以将
spring boot
工件完美地添加到您的“非”spring boot项目中,如果您真的想使用该功能,您可能会想知道是什么原因阻止您使用spring boot(新功能通常需要依赖项升级)。

该注释是更大更复杂功能的一部分,所以继承并不是那么容易。从某种意义上讲,Spring框架正试图变得更加健壮、稳定和紧凑。我非常确信,如果从引导到Spring继承某些东西是有意义的,那么开发人员就会这样做。就像他们用Spring集成的一部分做的那样。(这个问题似乎应该在Spring的论坛/邮件列表中提问)@Pavel Horal Spring论坛不再使用。“此论坛现在是只读存档。所有评论、发布和注册服务都已关闭。那些需要社区支持和/或想提问的人应参考标签/论坛地图,并访问以获取Pivotal工程师和社区监控的stackoverflow标签的策展列表。”。。。您的答案并没有真正提供仅在spring boot中保留注释的理由/逻辑。如何将可选功能仅限于spring boot“更健壮”?我问这个问题是为了寻找具体的原因。从表面上看,这个功能只在SpringBoot中使用对我来说没有任何意义。属性注入适用于任何spring项目。有趣的。。。我不知道他们关闭论坛是为了支持堆栈溢出。我不想添加spring boot只是为了使用ConfigurationProperties注释似乎有点过火,如果我使用的是非启动spring项目(runner),注释甚至会被扫描并触发验证吗?。我的用例是,我希望向spring4项目添加多个ConfigurationProperties注释,这些注释利用jsr-303验证并(通过反射api)将类属性名称映射到.properties文件中的条目。此外,前缀是可注入的,每个ConfigurationProperties注释每个使用实例。。。所以我不认为这仅仅是对spring引导的“固执己见”。例如,如果我有rabbitmq.properties、mongodb.properties、somethingelse.properties。如何创建对应的RabbitMQProperties.class、MongoDBProperties.class、SometihngElseProperties.class,所有这些都用ConfigurationProperties“自以为是”注释为Spring Boot?我想利用ConfigurationProperties注释提供的健全性检查和jsr-303验证