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

相关文章

  • 为什么我推荐Nginx作为后端服务器代理(原因解析)

    为什么我推荐Nginx作为后端服务器代理(原因解析) 背景 在进行Web开发过程中,我们有时需要一个后端服务器代理来帮助我们转发请求,Nginx往往是一个很好的选择。本文将从性能和功能两个方面来解析为什么我推荐Nginx作为后端服务器代理。 性能 Nginx的性能非常出色,它是一个高性能的HTTP服务器和反向代理服务器,能够帮助我们快速地响应客户端的请求。N…

    other 2023年6月27日
    00
  • asp ajax注册验证之 防止用户名输入空格

    ASP AJAX注册验证可以在用户填写表单时以异步方式进行实时验证,从而提高用户体验和防止恶意注册。本篇攻略将重点介绍如何防止用户名输入空格,以增强系统的安全性。 1. 前置条件 在进行ASP AJAX注册验证之前,需要您已经学习并掌握了ASP基础知识、AJAX基础知识和jQuery基础知识。 2. 防止用户名输入空格的步骤 2.1 获取用户名输入框的值 使…

    other 2023年6月27日
    00
  • oracle删除表语句

    当然,我很乐意为您提供有关“Oracle删除表语句”的完整攻略。以下是详细的步骤和两个示例: 1 删除表 在Oracle中,可以使用DROP TABLE语句删除表。DROP TABLE语句将删除指定的表及其所有相关的对象,如索引、触发器、约束等。 2 示例 以下是两个删除表的示例: 2.1 删除单个表 要删除单个表,可以使用以下语法: DROP TABLE …

    other 2023年5月6日
    00
  • Linux打包和压缩工具的使用详解

    以下是关于Linux打包和压缩工具使用的详细攻略: Linux打包和压缩工具的使用详解 1. tar命令 打包文件或目录: tar -cvf archive.tar file1 file2 directory1 解包tar文件: tar -xvf archive.tar 2. gzip命令 压缩文件: gzip file.txt 解压缩gzip文件: gzi…

    other 2023年10月14日
    00
  • r语言解读一元线性回归模型

    R语言解读一元线性回归模型 什么是一元线性回归模型 一元线性回归模型是指,只有一个自变量和一个因变量的回归模型,主要用来探讨自变量对因变量的影响程度。在一元线性回归模型中,自变量是一个连续的定量变量,而因变量也是一个连续的定量变量,两者之间呈现线性关系。 R语言对一元线性回归模型的支持 在R语言中,对于一元线性回归模型的分析,有多种不同的函数可供选用,包括l…

    其他 2023年3月28日
    00
  • java不通过配置文件初始化logger示例

    初始化Logger是Java程序中常见的操作之一,一般是用配置文件的方式来实现。但是,有时候我们不想使用配置文件的方式来初始化Logger,而是想通过代码来进行初始化。下面是两条示例说明来详细讲解如何不通过配置文件初始化Logger。 示例一:使用代码初始化rootLogger rootLogger是Logger hierarchy中的最高级别的Logger…

    other 2023年6月20日
    00
  • 微信小程序rich-text的使用方法

    以下是“微信小程序rich-text的使用方法”的完整攻略,包含两个示例说明: rich-text的基本概念 rich-text是微信小程序中的组件,用于显示富文本内容,支持HTML标签和CSS样式。rich-text的基本概念如下: 内容:富文本内容,可以包含HTML标签和CSS样式。 节点:富文本内容中的一个元素,可以是文本、图片、视频等。 样式:富文本…

    other 2023年5月9日
    00
  • 推荐发几个常用控件(新加DHTML控件)

    推荐发几个常用控件(新加DHTML控件)的完整攻略: 为什么需要控件 在Web前端开发中,控件是一种非常重要的工具,它们可以提高页面的交互性和美观性,更加便利的让用户使用我们的网站。 常见的控件 以下是几个常用控件的介绍: 1.表单控件 表单控件可以提供给用户进行输入的界面,包括文本框、下拉框等等。这些控件可以使用HTML的标签来实现,例如: <inp…

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