为啥要弃用 @ConfigurationProperties 中的方法位置?

Posted

技术标签:

【中文标题】为啥要弃用 @ConfigurationProperties 中的方法位置?【英文标题】:Why did deprecate method locations in @ConfigurationProperties?为什么要弃用 @ConfigurationProperties 中的方法位置? 【发布时间】:2017-06-30 08:11:04 【问题描述】:

我正在尝试在 Spring Boot 中配置多个“.yml”,例如...

application.yml

spring:
    profile: local

api.yml

spring:
    profile: local
myapi:
  url: localhost/...

所以,我在 @ConfigurationProperties 中找到了位置方法。 但是,它在 1.4.x 中已被弃用

Deprecated. as of 1.4 in favor of configuring the environment directly with additional locations

我该如何配置这种情况?

【问题讨论】:

【参考方案1】:

您可以使用spring.config.name 更改将要查找的配置文件名称。可以使用逗号分隔的列表配置多个名称。在您的情况下,您希望将其设置为 application,api

【讨论】:

不幸的是,这不适用于我们所有的@SpringBootTest 类,因为没有设置属性spring.config.name。另一种方法是通过properties 属性在所有带注释的测试类中显式设置它。但对我来说,这似乎效率低下。你有一个同样适用于测试的解决方案吗?提前致谢! 您可以使用一个通用的超类来设置它,或者使用一个 ContextCustomizer 将 PropertySource 添加到应用程序上下文的环境中 好的。谢谢,我会试试看。 这个问题是我可能想在第三个模块中使用配置,因此可以使用带有注释的 IoC 注入它们,这种新方式使客户端应用程序明确知道要进行哪些配置已加载

以上是关于为啥要弃用 @ConfigurationProperties 中的方法位置?的主要内容,如果未能解决你的问题,请参考以下文章

Docker不香?为什么阿里要弃用它?只能说阿里这套Kubernetes手册更香

GitHub 官宣:弃用 trending 热榜,开发者炸锅了

GitHub 官宣:弃用 trending 热榜,开发者炸锅了

用的挺顺手的 Spring Security 配置类,居然就要被官方弃用了?

U3D逆向-Mono另类解密

为啥 InstanceMethods 模块已被弃用?