我有一个包含一组任意属性的Spring Boot属性源文件。我想要获得所有这些属性并将它们添加到环境中。如何直接将Spring Boot属性源的属性添加到环境中
我试着将环境注入到类中,并且我可以使用它来获取已知的属性。但我不知道如何从那里获得全部属性。'
如果当然我可以使用传统的Properties.load(),但是有没有Spring方法来做到这一点?
我有一个包含一组任意属性的Spring Boot属性源文件。我想要获得所有这些属性并将它们添加到环境中。如何直接将Spring Boot属性源的属性添加到环境中
我试着将环境注入到类中,并且我可以使用它来获取已知的属性。但我不知道如何从那里获得全部属性。'
如果当然我可以使用传统的Properties.load(),但是有没有Spring方法来做到这一点?
你试过@PropertySource otation吗?
我不会推荐使用PropertySource
,因为您无法配置您添加的属性的优先顺序。你可能想要以某种方式覆盖这些属性,也许?或者您可能希望这些属性优先于其他属性。为此,我建议您实施EnvironmentPostProcessor
。
在此university session at Devoxx中有一个示例,其中we showcase how to read a file from the home directory并将其添加到命令行属性之后。你可以做几乎相同的事情,按照你想要的方式排列。
如果您想尝试一下,示例应用程序是available here。
如果你把你的属性放到“application.properties”(或其他地方描述的here)中,这些属性在Spring的环境中自动提供。
访问属性的一种方法就是将@Autowire
Environment
转换为您要访问它的类。