我正在将一个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。