带有yaml

时间:2016-12-13 20:21:18

标签: spring spring-boot

我在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文件解析占位符?

0 个答案:

没有答案