在导入yaml配置文件时,application.yml被覆盖



我正在将一个yaml配置文件导入到我的主ServerConfig类中。然而,当我启动服务器时,它将新的yaml文件设置为applicationConfig&忽略application.yml中设置的属性。理想情况下,它应该附加新的配置,但不要忽略基本application.yml。我该如何解决这个问题?

主配置类

@Configuration
@EnableScheduling
@Import({
NewPropertiesConfig.class
})
@EnableConfigurationProperties({...})
public class ServerConfig extends AbstractConfig  {
...
}

NewPropertiesConfig.class

@Configuration
@PropertySource(
value = {"classpath:abc-client.yaml"},
factory = YamlPropertySourceFactory.class
)
public class NewPropertiesConfig {
public NewPropertiesConfig() {
}
}

根据我对这个问题的理解,我们试图从两个独立的属性文件加载属性。

根据提供的代码示例,指定的属性文件是abc-client.yml,因此Spring将从该文件加载属性。

如果我们希望Spring从多个文件加载属性,那么我们需要指定要使用的每个文件。

我从未尝试过从多个yaml文件加载属性,但以下是我如何使用多个.properties文件的方法。

@PropertySource("classpath:application.properties")
@PropertySource("classpath:abc-client.properties")
public class NewPropertiesConfig {
//...
}

在名称冲突的情况下,最后一个文件中的属性获胜,根据我对问题的理解,这是所需的行为。不确定这是否也适用于yaml。

相关内容

  • 没有找到相关文章

最新更新