我在application-{env}.properties
中定义了一个特定于环境的属性。
application-dev.properties:
cm.security.power-users-group=fCmNonProdPowerUse
我有一个YAML配置,它将组映射到权限:
角色的mapping.yml:
cm:
security:
mapping:
roles:
${cm.security.power-users-group}:
- 'DATASET_UPLOAD'
我想将上述YAML文件与@ConfigurationProperties
一起使用。具体如下:
@Getter
@Component
@ConfigurationProperties(locations = "classpath:roles-mapping.yml", ignoreInvalidFields = false, ignoreUnknownFields = false, prefix = "cm.security.mapping")
public class RoleConfig {
private Map<String, List<Permissions>> roles = new HashMap<>();
}
这无法解析yaml文件中的占位符:
引起:org.springframework.beans.NotReadablePropertyException:无效的属性&#39;角色[$ {cm] .security [power-users-group}] [0]&#39;
只要我用直接值替换${..}
占位符,一切正常。
那么有没有办法从YAML中的.properties
文件解析占位符?