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

@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日

相关文章

  • 解决feignClient调用时获取返回对象类型匹配的问题

    这个问题涉及到了Feign的反序列化机制,具体地说就是如何将返回的JSON数据转化为Java对象。Feign调用时获取返回对象类型匹配的问题可以通过以下步骤解决: 1. 添加Jackson依赖 Feign使用了Jackson进行反序列化。我们需要在项目的pom.xml文件中添加Jackson的依赖: <dependency> <groupI…

    other 2023年6月27日
    00
  • Redis主从集群切换数据丢失的解决方案

    Redis主从集群切换数据丢失是一个常见的问题,下面将为您详细讲解解决方案的完整攻略。 1. Redis主从集群切换数据丢失原因分析 Redis主从集群切换数据丢失的主要原因是:在切换时,由于主从节点的异步复制机制,有些数据可能还没有来得及同步到从节点,如果此时直接将从节点升级为主节点,则存在数据丢失的风险。 2. Redis主从集群切换数据丢失的解决方案 …

    other 2023年6月26日
    00
  • C语言数组a和&a的区别讲解

    C语言数组a和&a的区别讲解 在C语言中,数组是一种非常常见且重要的数据类型。而在程序中,我们有时候会涉及到数组和数组地址的问题。本攻略将详细讲解数组a和&a的区别。 数组a的定义及用法 在C语言中,数组是一种由相同数据类型的元素所组成的集合。数组a的定义形式通常为: 类型说明符 数组名[元素个数]; 其中,类型说明符用来说明数组元素的数据类…

    other 2023年6月25日
    00
  • intellijidea大小写转换快捷键

    IntelliJ IDEA 是一款比较流行的 Java IDE,提供了多种方便的快捷键,在编辑 Java 代码时能够大大提高效率。其中,大小写转换快捷键是比较实用的一个,特别是在重构函数名或更改变量名称时。 以下是在 IntelliJ IDEA 中进行大小写转换的完整攻略: 1. 转换首字母大小写 将 Java 类名、接口名、变量名的首字母转换为大写: 快捷…

    其他 2023年4月16日
    00
  • ubuntu18.04安装frp的配置说明

    Ubuntu 18.04安装frp的配置说明 frp是一种高性能的反向代理工具,可以帮助我们将内网服务暴露到公网上。本攻略将介如何在Ubuntu 18.04上安装frp,并提供两个示例。 安装frp 以下是在Ubuntu 18.04上安frp的步骤: 下载frp。可以从frp的官方网站下载最新版本的frp,命令如下: wget https://github.…

    other 2023年5月9日
    00
  • MySQL插入数据时插入无效列的解决方法

    下面是详细讲解MySQL插入无效列的解决方法的攻略。 1. 什么是无效列 在MySQL中,无效列指的是在插入数据时,插入的列名无法在表中找到对应的列,或者表中存在该列,但该列不能被插入(该列不存在默认值、不允许为空并且没有提供值等)。 例如,有一张名为users的用户表,包含了三个字段:id、name和age。当我们向表中插入一条数据时,如果插入了一个无效列…

    other 2023年6月27日
    00
  • python脚本之三种运行方式 你会几个?

    当然,我可以为您提供有关“Python脚本之三种运行方式”的完整攻略,以下是详细说明: 什么是Python脚本? Python脚本是一种本文件,其中包含Python代码。Python脚本可以在Python解释器中运行,以执行其中的代码。 Python脚本的三种运行 Python脚本有三种运行方式,分别是: 在Python解释器中直接运行 在命令行中运行 在集…

    other 2023年5月7日
    00
  • Android自定义View的实现方法实例详解

    作为网站作者,我非常乐意为大家详细讲解关于“Android自定义View的实现方法实例详解”的攻略。 简介 在Android开发中,自定义View是非常常见的需求。通过自定义View,我们可以实现各种有趣的交互体验和UI效果。自定义View的实现涉及到许多知识点和技术,需要开发者有一定的实践经验和技术积累。 在本文中,我将为大家分享两条实例,详细讲解如何实现…

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