我有一个Spring启动应用程序,它随打包应用程序内的默认配置一起提供 . 所以我可以做到以下几点:

@Component
@PropertySource("classpath:applicationame.some.properties")
@PropertySource(value = "file:${applicationame.some.properties.vmarg}", ignoreResourceNotFound = true)
public class UIPropertiesConfigUsingClass

这样,应用程序具有应用程序中类路径的默认配置,但如果我在启动时将 -Dapplicationame.some.properties.vmarg=PathToProperties 指定为VM参数,则可以覆盖这些属性 .

但这有一些缺点 . 如果我指定它,我必须指定文件中的所有属性,否则它们将是未指定的,我只能在应用程序启动时更改它们,而不是在运行时 .

是否有一个廉价的解决方案,让我有机会提供属性文件,但只指定实际上与默认属性不同的属性?
如果在运行期间更改属性,则提供属性的自动重新加载,以便不需要重新启动?