@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现

yizhihongxing

@ConfigurationProperties 是 Spring Boot 中的一个注解,它允许我们将应用程序中的配置文件绑定到 Bean 上。绑定后,我们就可以方便地将配置文件的配置值注入到 Bean 中了。除了一个普通的扩展 @ConfigurationProperties 的 Spring Boot Config 类之外,我们还可以将属性绑定到 Collections 类型中。

绑定数组

下面是一个绑定数组的示例:

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {

    private String[] servers;

    public String[] getServers() {
        return this.servers;
    }

    public void setServers(String[] servers) {
        this.servers = servers;
    }
}

以上代码将会绑定配置文件中以 example.servers 为前缀的所有属性。假设配置文件如下:

example.servers[0]=localhost
example.servers[1]=127.0.0.1

在 Spring Boot 应用程序中,在 @EnableConfigurationProperties 注释业务类的注释上声明 ExampleProperties 就可以使用绑定的值:

@SpringBootApplication
@ConfigurationPropertiesScan
@EnableConfigurationProperties(ExampleProperties.class)
public class ExampleApplication implements CommandLineRunner {

    @Autowired
    private ExampleProperties exampleProperties;

    public static void main(String[] args) {
        SpringApplication.run(ExampleApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println(Arrays.asList(exampleProperties.getServers()));
    }
}

在上述代码中,我们可以从 ExampleProperties 对象中获得绑定的属性值,并将其打印到控制台中。

绑定列表

绑定列表和绑定数组类似。下面是一个绑定列表的示例:

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {

    private List<String> servers;

    public List<String> getServers() {
        return this.servers;
    }

    public void setServers(List<String> servers) {
        this.servers = servers;
    }
}

假设配置文件如下:

example.servers[0]=localhost
example.servers[1]=127.0.0.1

在 Spring Boot 应用程序中,在 @EnableConfigurationProperties 注释业务类的注释上声明 ExampleProperties 就可以使用绑定的值:

@SpringBootApplication
@ConfigurationPropertiesScan
@EnableConfigurationProperties(ExampleProperties.class)
public class ExampleApplication implements CommandLineRunner {

    @Autowired
    private ExampleProperties exampleProperties;

    public static void main(String[] args) {
        SpringApplication.run(ExampleApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println(exampleProperties.getServers());
    }
}

在上述代码中,我们可以从 ExampleProperties 对象中获得绑定的属性值,并将其打印到控制台中。

绑定Map

以下是一个绑定 Map 的示例:

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {

    private Map<String, String> servers;

    public Map<String, String> getServers() {
        return this.servers;
    }

    public void setServers(Map<String, String> servers) {
        this.servers = servers;
    }
}

假设配置文件如下:

example.servers.server1=localhost
example.servers.server2=127.0.0.1

在 Spring Boot 应用程序中,在 @EnableConfigurationProperties 注释业务类的注释上声明 ExampleProperties 就可以使用绑定的值:

@SpringBootApplication
@ConfigurationPropertiesScan
@EnableConfigurationProperties(ExampleProperties.class)
public class ExampleApplication implements CommandLineRunner {

    @Autowired
    private ExampleProperties exampleProperties;

    public static void main(String[] args) {
        SpringApplication.run(ExampleApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println(exampleProperties.getServers());
    }
}

在上述代码中,我们可以从 ExampleProperties 对象中获得绑定的属性值,并将其打印到控制台中。

绑定配置信息至 Bean 的实现方式与以上示例类似,只是需要定义一个含有 Map 类型属性的 Bean,并将配置文件中绑定到该 Bean 上。

以上就是@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 电脑数字键打不出数字怎么版 电脑小键盘数字键不能用的解决方法

    电脑数字键打不出数字怎么办 电脑小键盘数字键不能用的解决方法 电脑键盘数字键无法使用是一个常见的问题,但通常可以通过以下方法来解决: 解决方法一:检查小键盘是否开启 一些笔记本电脑可能没有小键盘,在这种情况下,只能使用主键盘靠近字母区的数字键。对于那些有小键盘的电脑,当你按下“Num Lock”键时小键盘会开启,而数字键就可以正常工作。如果你发现小键盘无法正…

    other 2023年6月27日
    00
  • maven下mybatis-plus和pagehelp冲突问题的解决方法

    解决 Maven 下 MyBatis-Plus 和 PageHelper 冲突问题的方法如下: 问题描述 在使用 Maven 构建项目时,如果引入了 MyBatis-Plus 和 PageHelper 两个依赖,会因为它们都依赖于 MyBatis 造成冲突,导致编译出错。 具体来说,MyBatis-Plus 依赖 MyBatis 3.5.x,而 PageHe…

    other 2023年6月27日
    00
  • Flutter系统网络图片加载流程解析

    Flutter系统网络图片加载流程解析 Flutter系统提供了许多网络图片加载的功能,但是对于初学者来说,很难理解这些功能的原理和使用方法。本文将对Flutter系统网络图片加载的流程进行解析,并提供两个示例说明。 图片加载的流程 Flutter系统网络图片加载的流程大致如下: 根据图片的URL创建一个ImageProvider对象。 ImageProvi…

    other 2023年6月26日
    00
  • 什么是神经网络?

    神经网络是一种机器学习模型,通过多层神经元构建实现非线性分类和回归预测。接下来的攻略将详细讲解神经网络的构建过程。 准备工作 在进行神经网络构建之前,需要准备好以下工作: 数据集:神经网络需要大量的训练数据来训练模型,因此需要准备好符合实际的数据集。 环境配置:需要安装好合适的深度学习框架以及相应的包和库,如TensorFlow、Keras等。 数据预处理 …

    其他 2023年4月19日
    00
  • css选择最后一个元素

    在CSS中,我们可以使用伪类选择器来选择最后一个元素。在本攻略中,我们将详细讲解如何使用伪类选择器来选择最后一个元素,并提供两个说明。 使用:last-child伪类选择器 在CSS中:last-child伪类选择器用于选择某个元素的最后一个元素以下是一个示例,演示了如何使用:last-child伪类选择器: <ul> <li>第一个…

    other 2023年5月9日
    00
  • Python类继承和多态原理解析

    Python类继承和多态原理解析 在Python中,类继承和多态是面向对象编程的两个核心概念,它们为我们构建更加灵活高效的程序提供了便捷的途径。下面我们将详细讲解Python类继承和多态的原理和使用方法。 类继承 类继承是指一个类可以继承自另一个类的属性和方法,继承自另一个类的类称为子类,被继承的类称为父类或基类。子类可以在不修改父类的情况下增加或修改自己的…

    other 2023年6月26日
    00
  • 魔兽世界7.3.5防战怎么堆属性 wow7.35防战配装属性优先级攻略

    魔兽世界(World of Warcraft,简称WoW)中的“防战”是指防御型战士,在7.3.5版本中,防战常用的堆属性有哪些?防战的配装属性优先级又是怎样的呢?下面是详细攻略: 一、防战堆属性 1. 装备属性 防战堆属性通过装备属性来实现。因为防御士兵主要是通过减伤来操纵坦克的,所以它必须寻找装备,以最大化其生存能力。装备属性在防兵职业中仍然是基本核心属…

    other 2023年6月27日
    00
  • npm install的–save和–save-dev使用说明(推荐)

    当使用npm install命令安装包时,可以使用–save和–save-dev选项来指定将包的依赖项添加到package.json文件中的不同部分。 –save选项将包添加到dependencies部分。这意味着该包是项目的运行时依赖项,必须在生产环境中使用。例如,如果你安装了一个名为lodash的包,并使用–save选项,那么lodash将被添加…

    other 2023年9月7日
    00
合作推广
合作推广
分享本页
返回顶部