【问题标题】:Why is @ConfigurationProperties annotation not part of the spring-core project?为什么@ConfigurationProperties 注解不是spring-core 项目的一部分?
【发布时间】:2015-11-17 23:43:44
【问题描述】:

我了解 @ConfigurationProperties 注释最初是作为 spring-boot 项目的一部分开发的......但是功能 @ConfigurationProperties 可以在 Spring Boot 项目之外与任何其他 Spring 项目一起应用......在这个前提下...... ..

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

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

【问题讨论】:

  • 该注释是一个更大更复杂功能的一部分,因此继承不会那么容易。 Spring Framework 在某种意义上试图变得更加健壮、稳定和紧凑。我很确定,如果从 Boot 到 Spring 继承某些东西是有意义的,开发人员会这样做。就像他们在 Spring Integration 的一部分中所做的一样。 (这个问题感觉应该在Spring的论坛/邮件列表上问)
  • @Pavel Horal Spring 论坛不再使用。 “这个论坛现在是一个只读存档。所有评论、发帖、注册服务都已关闭。那些需要社区支持和/或想提问的人应该参考标签/论坛地图,以及spring.io/questions Pivotal 工程师和社区监控的 stackoverflow 标签的精选列表。”
  • ... 而您的回答并没有真正提供仅在 spring-boot 中保留注释的推理/逻辑。将可选功能仅限于 spring-boot 如何“更强大”?我问这个问题是为了寻找具体原因。从表面上看,这个功能只存在于 spring-boot 中对我来说并没有任何意义。属性注入适用于任何 Spring 项目。
  • 有趣...我不知道他们关闭了论坛以支持 Stack Overflow。

标签: spring spring-boot


【解决方案1】:

这完全取决于您所说的核心是什么意思。您必须划清界限是关于自以为是的方法与框架/通用/可配置功能。 @ConfigurationProperites 使用一种宽松的绑定,非常自以为是,因此它不能迁移到 Spring Framework 本身。它还认为您的属性以某个前缀开头。同样,这是一个非常适合 Spring Boot 的观点,但对于框架来说可能有点过于严格。

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

【讨论】:

  • 好吧,我不想添加 Spring Boot 只是为了使用 ConfigurationProperties 注释似乎有点矫枉过正,如果我使用的是非引导 spring 项目(运行器),甚至会扫描注释并触发验证吗? .我的用例是我想向 spring4 项目添加多个 ConfigurationProperties 注释,这些注释利用 jsr-303 验证并将类属性名称映射(通过反射 api)到 .properties 文件中的条目。此外,每个使用实例的每个 ConfigurationProperties 注释的前缀都是可注入的......所以我看不出这是如何“认为”仅用于 spring-boot。
  • 例如,如果我有rabbitmq.properties、mongodb.properties、somethingelse.properties。如何创建一个相应的 RabbitMQProperites.class、MongoDBProperties.class、SometihngElseProperties.class 都用 ConfigurationProperties “opinionated”注释到 Spring-Boot?我想利用 ConfigurationProperties 注释提供的完整性检查和 jsr-303 验证
猜你喜欢
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 2021-02-17
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多