松弛装订和弹簧靴的问题2

时间:2017-12-04 13:02:41

标签: java spring spring-boot

我使用的是Spring Boot 2.0 M7。我尝试使用Binder API来获取属性映射。

我有以下用例: 我有一些X具有特定前缀的属性,例如XXX,该前缀后跟一个我们将命名为bean的动态字符串,此属性后面跟着它们将是bean属性的其他键。完整的例子是:

XXX.BEANA.PROPERTYA
XXX.BEANA.PROPERTYB
XXX.BEANB.PROPERTYA 

依旧......

这里的问题是,这可以通过多种方式进行配置(使用下划线而不是点,全部大写等等),因此我们需要轻松绑定

我创建了一个测试,在测试中,我使用了MockEnvironment,我以不同的方式编写了属性键(全部大写,下限,用点分隔,用下划线和这个组合)来检查我是否代码工作正常。但是当我使用下划线而不是点(例如XXX_BEANA_PROPERTYA)设置时,活页夹无法找到我的属性。在spring boot轻松绑定wiki for spring boot 2,环境变量部分(https://github.com/spring-projects/spring-boot/wiki/Relaxed-Binding-2.0#environment-variables)它告诉:

Environment variables are bound by lowercasing and replacing _ with ... 
For example: SPRING_JPA_DATABASEPLATFORM=mysql results in the property spring.jpa.databaseplatform=mysql

但是看一下调试器,看起来该属性仍然使用下划线全部大写语法。

我配置Binder的方式是:

Binder.get(this.enviroment).bind("XXX", Bindable.mapOf(String.class, Object.class)).ifBound(this::doSomething);

我错过了什么吗?感谢

0 个答案:

没有答案