为什么我无法在Spring Boot中使用YAML加载属性POJO?

Antoniossss:

我已经阅读了许多帖子,问题,示例以及所有应该起作用的内容,但是由于任何原因它都不起作用...。

谁能告诉我为什么这行不通?

@Configuration()
@PropertySource("users.yml")
@Data
@ConfigurationProperties
@EnableConfigurationProperties
public class UserConfig {


    public String test;
    public List<String> states;
    public List<User> users;

    @PostConstruct
    public void print() {
        System.out.println(this);
        System.exit(0);
    }
}

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private String username;
    private String pw;
    private List<String> roles;
}

输出是 UserConfig(test='yeah im tested', states=[], users=[])

对于给定的YAML

test: 'yeah im tested'
states:
  - 'Up'
  - 'Down'
users:
  -
    username: 'Gienek'
    pw: 'niegienek'
    roles:
      - 'rola1'
      - 'rola2'

注意:使用states: 'Up','Down'填充状态列表。

另请注意,它部分起作用。

RUARO Thibault:

更确切地说,Spring Boot不想支持@PropertySource正确支持yml文件是一个“已知”事实,因为这不是@Propertysource在Spring boot项目中使用的“标准” ...这是讨论的链接:https://github.com/spring-projects/spring-framework/issues/18486

您也可以像推荐的那样尝试使用EnvironmentPostProcessorhttps : //docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-customize-the-environment-or-application-context

我建议任何人都可以尝试application.yml,除非您有利用限制。

一种解决方案是将您的内容复制users.ymlapplication.yml最终满足您需求的内容中。

src / main / resources / application.yml

test: 'yeah im tested'
states:
  - 'Up'
  - 'Down'
users:
  -
    username: 'Gienek'
    pw: 'niegienek'
    roles:
      - 'rola1'
      - 'rola2'

UserConfig.java

@Data
@Configuration
@ConfigurationProperties
@EnableConfigurationProperties
public class UserConfig {
    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的 Spring Boot Web 应用程序无法加载其配置属性?

为什么Spring Data REST无法使用我的投影界面?

为什么我无法使用Spring Boot在Spring上下文中获得Bean定义?

为什么我的OAuth2无法与Spring Boot一起使用?

为什么我的属性在转换为 pojo 时无法识别

为什么我的代码无法正确加载?

为什么我的UIView无法加载?

为什么我的加载无法正常工作

为什么Xcode无法加载我的NIB

为什么我的块无法加载?

为什么我无法加载谷歌地图?

为什么我的视图无法加载

为什么我的简单 Spring Boot 应用程序无法在 Heroku 上部署?

为什么我无法使用扩展功能?

为什么我的查询无法使用RDFlib

为什么XCOPY无法使用我的脚本?

为什么我的ActionListener无法使用?

我的余量无法使用,为什么

Spring Boot-为什么@ComponentScan无法与我的软件包组合一起使用?

无法在方法中使用我的小部件Qcombobox,为什么?

为什么我无法在Android中使用JsonArray检索数据?

为什么我的onload函数无法在JavaScript中使用?

为什么Javascript无法在我的Flask应用中使用?

为什么我无法在Beautifulsoup中使用.text提取文本

为什么我的背景色无法在ComboBox中使用

为什么使用DateTimeFormat我无法转换属性错误

为什么我无法使用 JavaScript 访问 CSS 属性?

为什么使用 Kafka 的 spring-boot 无法启动?

为什么Spring Client无法获得Spring Config Server属性?