从application.yml读取配置到POJO列表列表

时间:2019-07-12 16:09:44

标签: java spring spring-boot

我有这个 application.yml 文件

messages:
  first-journey-messages:
    - key: fullName-required
      value: This field is required.
    - key: fullName-validation
      value: Please enter a valid full name.
    - key: technical-error
      value: Unfortunately we are having technical issues, please try again later.
  second-journey-messages:
    - key: technical-error
      value: "<p class='heading-bold'>Sorry, something went wrong </p><p>We encountered a technical error. Please try again. If you continue to experience difficulties, please call us on 0123456 and an agent will be happy to assist you.</p>"
    - key: download-technical-error
      value: "<p class='heading-bold'>Sorry, something went wrong </p><p>Unable to download document at this moment. Please try again later.</p>"
  third-journey-messages:
    - key: home-url
      value: /app/home
    - key: services-url
      value: /app/services

我想使用Map注释阅读@Value对象下面的上述配置。

@Value("${messages}")
private Map<String, List<MessageEntry>> messagesMap = new HashMap<>();

POJO: MessageEntry

@Data
@AllArgsConstructor
public class MessageEntry implements Serializable {
    private String key;
    private String value;
}

当我尝试读取配置时,我得到null

messagesMap.get("second-journey-messages")

有人可以帮助我识别我在做什么错误吗? 或者,如何将上面的配置读取为Map<String, List<MessageEntry>>类型的对象?

注意:我在 lombok

中使用 spring boot

1 个答案:

答案 0 :(得分:0)

我认为这个回答可以帮助您link。尝试更改yml文件中的键,值表示法。