在Spring Boot中将YAML列表映射到对象列表

布兰登·E·泰勒

我有一个与Yaml的Mapping list映射到Spring Boot中的对象列表中描述的问题类似的问题,除了我想从YAML中使用的对应键名中更改对象中至少一个字段的标识符。

例如:

YAML文件:

config:
    gateways:
        -
            id: 'g0'
            nbrInputs: 128
            nbrOutputs: 128
        -
            id: 'g1'
            nbrInputs: 128
            nbrOutputs: 128

配置类别:

@Configuration
@ConfigurationProperties(prefix="config")
public class GatewayConfig
{
    List<Gateway> gateways = new ArrayList<Gateway>();

    // Getter/Setter for gateways
    // ...

    public static class Gateway
    {
        private String id;

        @Value("${nbrInputs}")
        private int numInputs;

        @Value("${nbrOutputs}")
        private int numOutputs;

        // Getters and Setters
        // ...
    }
}

我希望@Value批注允许我注入相应的属性值,但这似乎不起作用(注入'id'字段似乎可以正常工作)。

有没有办法使用@Value(或任何其他注释)来做到这一点?

谢谢你。


编辑:请注意,我要确定是否可以在不更改任一名称的情况下强制YAML属性和内部POJO中的字段之间的对应关系我可能要这样做有几个原因-例如,我可能无法控制YAML文件的格式,并且我想在POJO中使用比YAML文件的作者更具描述性的标识符名称。

奥尔斯科纳克

正如Stephave Nicoll所提到的,@Value注解与无关@ConfigurationProperties只是内部POJO中的名称字段与配置文件中的名称相同,这应该起作用:

@Configuration
@ConfigurationProperties(prefix="config")
@EnableConfigurationProperties
public class GatewayConfig
{
    List<Gateway> gateways = new ArrayList<Gateway>();

    // Getter/Setter for gateways
    // ...

    public static class Gateway
    {
        private String id;
        private int nbrInputs;
        private int nbrOutputs;

        // Getters and Setters
        // ...
    }
}

对评论的反应:

使用普通的Spring / Spring Boot,我认为您不能映射具有不同名称的字段并将其加载到网关列表中。可以选择使用普通的@Value注释,但是您的网关计数需要硬编码:

@Component
public class Gateway0{
    @Value("${config.gateways[0].id}")
    private String id;

    @Value("${config.gateways[0].nbrInputs}")
    private int numInputs;

    @Value("${config.gateways[0].nbrOutputs}")
    private int numOutputs;

    // Getters and Setters
    // ...
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Spring boot 中将 RestTemplate 的 getBody 数组列表响应映射到类中?

来自分类Dev

Spring JdbcTemplate:获取未映射到对象的列表

来自分类Dev

在Spring Web MVC中将带有破折号的URL参数映射到对象

来自分类Dev

如何在Spring MVC中将jsp视图中的复杂结构映射到模型对象

来自分类Dev

映射到Spring MVC REST中的对象

来自分类Dev

如何在Spring数据elasticsearch中映射嵌套对象列表

来自分类Dev

在请求中包含列表的映射对象-Spring MVC

来自分类Dev

spring boot 不会在页面上显示对象列表

来自分类Dev

在Spring Controller中将@ CookieValue,@ RequestHeader等映射到POJO

来自分类Dev

Spring MVC @RequestParam对象列表

来自分类Dev

Spring @RequestBody没有映射到自定义对象

来自分类Dev

YAML映射到对象

来自分类Dev

Spring - 显示不同列表的相同映射

来自分类Dev

如何让mybatis将列表映射到对象

来自分类Dev

如何在Spring Mvc Jpa中将实体对象列表转换为页面对象?

来自分类Dev

带有其他对象列表的Spring Web服务请求和响应映射

来自分类Dev

spring mvc 资源映射到 /**

来自分类Dev

Automapper - 将复杂对象列表映射到属性列表

来自分类Dev

如何在Spring Boot中将Java实体映射到多个MongoDB集合,并为两个集合使用不同的索引?

来自分类Dev

如何在Ansible / Jinja2中将字符串列表映射到对象列表?

来自分类Dev

Spring Boot YAML配置

来自分类Dev

从Spring Boot配置中获取列表

来自分类Dev

Spring boot sessionRegistry 返回空的主体列表

来自分类Dev

映射到多态列表

来自分类Dev

Java Spring + MongoTemplate 无法检索对象列表

来自分类Dev

如何在Python中将值从列表映射到嵌套字典?

来自分类Dev

在 Pandas Python 中将刺痛列表映射到 0

来自分类Dev

Spring Boot 应用程序 - 如何根据当前对象将数据(列表中的列表)从控制器传递到 Thymeleaf?

来自分类Dev

如何在Spring Boot数据弹性搜索中搜索嵌套列表对象

Related 相关文章

  1. 1

    如何在 Spring boot 中将 RestTemplate 的 getBody 数组列表响应映射到类中?

  2. 2

    Spring JdbcTemplate:获取未映射到对象的列表

  3. 3

    在Spring Web MVC中将带有破折号的URL参数映射到对象

  4. 4

    如何在Spring MVC中将jsp视图中的复杂结构映射到模型对象

  5. 5

    映射到Spring MVC REST中的对象

  6. 6

    如何在Spring数据elasticsearch中映射嵌套对象列表

  7. 7

    在请求中包含列表的映射对象-Spring MVC

  8. 8

    spring boot 不会在页面上显示对象列表

  9. 9

    在Spring Controller中将@ CookieValue,@ RequestHeader等映射到POJO

  10. 10

    Spring MVC @RequestParam对象列表

  11. 11

    Spring @RequestBody没有映射到自定义对象

  12. 12

    YAML映射到对象

  13. 13

    Spring - 显示不同列表的相同映射

  14. 14

    如何让mybatis将列表映射到对象

  15. 15

    如何在Spring Mvc Jpa中将实体对象列表转换为页面对象?

  16. 16

    带有其他对象列表的Spring Web服务请求和响应映射

  17. 17

    spring mvc 资源映射到 /**

  18. 18

    Automapper - 将复杂对象列表映射到属性列表

  19. 19

    如何在Spring Boot中将Java实体映射到多个MongoDB集合,并为两个集合使用不同的索引?

  20. 20

    如何在Ansible / Jinja2中将字符串列表映射到对象列表?

  21. 21

    Spring Boot YAML配置

  22. 22

    从Spring Boot配置中获取列表

  23. 23

    Spring boot sessionRegistry 返回空的主体列表

  24. 24

    映射到多态列表

  25. 25

    Java Spring + MongoTemplate 无法检索对象列表

  26. 26

    如何在Python中将值从列表映射到嵌套字典?

  27. 27

    在 Pandas Python 中将刺痛列表映射到 0

  28. 28

    Spring Boot 应用程序 - 如何根据当前对象将数据(列表中的列表)从控制器传递到 Thymeleaf?

  29. 29

    如何在Spring Boot数据弹性搜索中搜索嵌套列表对象

热门标签

归档