SpringBoot 如何从配置文件读取值到对象中

SpringBoot 通过@ConfigurationProperties注解可以方便的将属性值注入到对象中,从而实现从配置文件读取值到对象中的功能。

以下是实现完整攻略:

  1. 在pom.xml文件中添加依赖:

xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

  1. 在application.yml或application.properties中添加属性值

yml
my.config.name: MyConfigName
my.config.email: myemail@example.com

  1. 创建一个配置类,用@ConfigurationProperties注解标注,并用注解@PropertySource指定配置文件的位置。在类中定义属性,并提供setters和getters方法来访问和操作属性值。

```java
@Configuration
@PropertySource("classpath:application.yml")
@ConfigurationProperties(prefix = "my.config")
public class MyConfig {
private String name;
private String email;

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   public String getEmail() {
       return email;
   }

   public void setEmail(String email) {
       this.email = email;
   }

}
```

  1. 在启动类中使用@EnableConfigurationProperties注解来启用配置类,从而注入属性值到对象中。

java
@SpringBootApplication
@EnableConfigurationProperties(MyConfig.class)
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}

现在,我们可以在代码中通过MyConfig对象来访问配置文件中的属性值:

@RestController
public class MyController {
    @Autowired
    MyConfig myConfig;

    @GetMapping("/config")
    public String config() {
        return "name: " + myConfig.getName() + ", email: " + myConfig.getEmail();
    }
}

运行程序并访问配置文件中的属性值:

curl http://localhost:8080/config

输出:

name: MyConfigName, email: myemail@example.com

以下是更多示例:

假设配置文件中包含以下属性值:

my.config.map:
  key1: value1
  key2: value2

可以通过在配置类中增加一个Map来读取这些属性值:

@Configuration
@PropertySource("classpath:application.yml")
@ConfigurationProperties(prefix = "my.config")
public class MyConfig {
    private Map<String, String> map;

    public Map<String, String> getMap() {
        return map;
    }

    public void setMap(Map<String, String> map) {
        this.map = map;
    }
}

可以通过在控制器中输出map来验证:

@RestController
public class MyController {
    @Autowired
    MyConfig myConfig;

    @GetMapping("/config")
    public Map<String, String> config() {
        return myConfig.getMap();
    }
}

运行程序并访问配置文件中Map对象的属性值:

curl http://localhost:8080/config

输出:

{key1=value1, key2=value2}

假设配置文件中包含以下属性值:

my.config.list:
  - item1
  - item2

可以将属性值注入到一个List对象中:

@Configuration
@PropertySource("classpath:application.yml")
@ConfigurationProperties(prefix = "my.config")
public class MyConfig {
    private List<String> list;

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }
}

可以通过在控制器中输出list来验证:

@RestController
public class MyController {
    @Autowired
    MyConfig myConfig;

    @GetMapping("/config")
    public List<String> config() {
        return myConfig.getList();
    }
}

运行程序并访问配置文件中List对象的属性值:

curl http://localhost:8080/config

输出:

[item1, item2]

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot 如何从配置文件读取值到对象中 - Python技术站

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

相关文章

  • Linux上最常用的用户名和密码 有的快改

    攻略:Linux上常用的用户名和密码 用户名 在Linux系统中,最常用的用户名是“root”,这是因为“root”是Linux系统的管理员账户。拥有“root”账户的用户可以对整个系统进行管理,包括安装、升级和删除软件,修改系统配置文件等操作。因此,使用“root”账户需要小心谨慎,避免误操作导致系统崩溃或数据丢失。 除了“root”账户,Linux系统中…

    other 2023年6月27日
    00
  • MySQL数据库压缩版本安装与配置详细教程

    MySQL数据库压缩版本安装与配置详细教程 安装步骤 下载MySQL压缩版本 前往MySQL官网下载MySQL压缩版本(Community Server),根据操作系统位数选择相应版本。 将下载的文件移动到目标安装路径,准备解压安装。 bash mv ~/Downloads/mysql-x.x.xx.tar.gz /usr/local/mysql 解压MyS…

    other 2023年6月20日
    00
  • JavaScript中字面量与函数的基本使用知识

    JavaScript语言中,字面量(Literal)和函数(Function)是两个非常重要的概念。字面量是指在代码中直接使用的数据值,如数字、字符串、布尔值等。函数则是一段可以被调用执行的代码块,是实现代码重用和结构清晰的关键手段。本文将讲解JavaScript中字面量与函数的基本使用知识,包括字面量的类型和用法,函数的定义和调用,以及常见函数的示例说明。…

    other 2023年6月26日
    00
  • ubuntugrep命令

    以下是Ubuntu grep命令的完整攻略,包括步骤、示例和注意事项: Ubuntu grep命令攻略 grep命令是一种在Linux和Unix系统中用于搜索文本的命令。它可以搜索文件中的指定文本,并输出包含该文本的行。以下是详细的攻略: 步骤 以下是使用grep命令的步骤: 打开终端。 在Ubuntu系统中,可以使用Ctrl+Alt+T快捷键打开终端。 输…

    other 2023年5月7日
    00
  • Vue封装通用table组件的完整步骤记录

    下面我将详细讲解“Vue封装通用table组件的完整步骤记录”的完整攻略。 步骤一:创建组件 首先,我们需要在Vue项目中创建一个通用的table组件,可用于展示不同类型的数据。创建组件的过程如下: <template> <div class="table"> <table> <thead>…

    other 2023年6月25日
    00
  • 释放c盘空间的27招优化技巧

    释放C盘空间的27招优化技巧的完整攻略 C盘是Windows系统的主要盘符,也是存储系统文件和应用程序的主要位置。随着时间的移,C盘的空间可能会越来越小,影响系统的性能和稳定性。本文将介绍27招优化技巧,助您释放C盘空间,提高系统的性能和稳定性。 1. 清理临时文件 临时文件是系统和应用程序在运行过程中产生的文件,它们占用了大量的磁盘空间。以下是清理临时文件…

    other 2023年5月10日
    00
  • Android 静默方式实现批量安装卸载应用程序的深入分析

    Android 静默方式实现批量安装卸载应用程序的深入分析 在一些场景下,我们需要批量安装或卸载 Android 应用程序。对于大规模测试和定制化设备来说,静默方式实现这一过程可以提高效率。在本文中,我们将深入分析如何实现 Android 静默方式的批量安装和卸载应用程序。 静默方式简介 静默方式是指在不需要用户进行交互的情况下执行某些操作的方式。在 And…

    other 2023年6月25日
    00
  • 最新github账号注册(详细图解)

    以下是关于“最新github账号注册(详细图解)”的完整攻略,包括注册步骤、注意事项和示例说明。 注册步骤 打开GitHub官网(https://github.com/)。 点击右上角的“Sign up”按钮。 在弹出的注册页面中,输入用户名、电子邮件地址和密码,然后点击“Create account”按钮。 在弹出的“Choose your plan”页面…

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