只要您乐意将所有属性添加到地图中,而不只是仅添加一些您事先不知道的属性,都可以使用进行操作
@ConfigurationProperties。如果要获取下面的所有内容,
namespace则需要使用一个空前缀并为名为的地图提供一个吸气剂
namespace:
@ConfigurationProperties("")public class CustomProperties { private final Map<String, String> namespace = new HashMap<>(); public Map<String, String> getNamespace() { return namespace; }}Spring Boot使用该
getNamespace方法检索地图,以便可以向其添加属性。具有以下属性:
namespace.a=alphanamespace.b=bravonamespace.c=charlie
该
namespace地图将包含三个条目:
{a=alpha, b=bravo, c=charlie}如果属性嵌套得更深,例如:
namespace.foo.bar.a=alphanamespace.foo.bar.b=bravonamespace.foo.bar.c=charlie
然后你会使用
namespace.foo作为前缀和重命名
namespace以及
getNamespace对
CustomProperties以
bar和
getBar分别。
请注意,您应该应用
@EnableConfigurationProperties配置以启用对的支持
@ConfigurationProperties。然后,您可以使用该批注引用要处理的任何bean,而不是为其提供
@Bean方法,或者
@Component通过组件扫描来发现它们:
@SpringBootApplication@EnableConfigurationProperties(CustomProperties.class)public class YourApplication { // …}


