【Java】读取 springboot 配置文件内容的几种方法

这篇具有很好参考价值的文章主要介绍了【Java】读取 springboot 配置文件内容的几种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring Boot 是一个非常流行的 Java Web 开发框架,它提供了大量的便捷功能和特性,其中读取配置文件是其中的一项重要功能。Spring Boot 支持多种方式读取配置文件,本文将介绍 Spring Boot 读取配置文件的原理和常用方法。

Spring Boot 读取配置文件原理

Spring Boot 读取配置文件的原理是通过 Spring Boot 的自动配置机制实现的。Spring Boot 会根据不同的配置文件类型(如 properties、yml 等)来动态解析配置文件,并将配置文件中的配置项解析到 Spring Boot 配置类中。Spring Boot 配置类可以是一个普通的 Java 类,也可以是一个带有注解的类。配置类中的属性可以使用 @Value@ConfigurationProperties 注解来注入配置值,从而实现读取配置文件的功能。

Spring Boot 读取配置数据的方法

下面是常用的几种读取 Spring Boot 配置数据的方法。

1. 使用 @Value 注解

@Value 注解可以用来注入配置值,它可以注入常量、系统属性、SpEL 表达式等。使用 @Value 注解读取配置值的示例代码如下:

@Component
public class MyComponent {
    @Value("${my.property}")
    private String myProperty;

    // getter and setter
}

在上面的示例中,${my.property} 表示从配置文件中读取 my.property 配置项的值,并注入到 myProperty 属性中。

2. 使用 @ConfigurationProperties 注解

@ConfigurationProperties 注解可以用来将配置文件中的配置项映射到一个 Java 类中。使用 @ConfigurationProperties 注解读取配置值的示例代码如下:

@Configuration
@ConfigurationProperties(prefix = "my")
public class MyConfig {
    private String property;

    // getter and setter
}

在上面的示例中,@ConfigurationProperties(prefix = "my") 表示将以 my 开头的配置项映射到 MyConfig 类中。例如,如果配置文件中有 my.property 配置项,则会将其映射到 property 属性中。

3. 使用 @PropertySource 注解

@PropertySource 注解可以用来指定配置文件的位置。使用 @PropertySource 注解读取配置值的示例代码如下:

@Configuration
@PropertySource("classpath:my.properties")
public class MyConfig {
    @Value("${my.property}")
    private String property;

    // getter and setter
}

在上面的示例中,@PropertySource("classpath:my.properties") 表示将 classpath 下的 my.properties 文件作为配置文件。

4. 使用 Environment 对象

Environment 对象是 Spring Boot 读取配置文件的核心对象,它可以用来读取配置值、配置文件、系统属性等。使用 Environment 对象读取配置值的示例代码如下:

@Component
public class MyComponent {
    @Autowired
    private Environment env;

    public String getProperty(String key) {
        return env.getProperty(key);
    }
}

在上面的示例中,env.getProperty(key) 表示从配置文件中读取指定配置项的值。

示例

以下是本文中涉及到的配置文件示例。

1. properties 配置文件示例

application.properties 文件中添加以下配置项:

my.property=Hello, World!

2. yml 配置文件示例

application.yml 文件中添加以下配置项:

my:
  property: Hello, World!

3. @PropertySource 注解指定的 properties 配置文件示例

my.properties 文件中添加以下配置项:

my.property=Hello, World!

MyConfig 类中使用 @PropertySource 注解指定该文件的位置:

@Configuration
@PropertySource("classpath:my.properties")
@ConfigurationProperties(prefix = "my")
public class MyConfig {
    private String property;

    // getter and setter
}

4. Environment 对象读取配置值示例

application.properties 文件中添加以下配置项:

my.property=Hello, World!

MyComponent 类中使用 Environment 对象读取该配置项的值:

@Component
public class MyComponent {
    @Autowired
    private Environment env;

    public String getProperty() {
        return env.getProperty("my.property");
    }
}

下面是一个完整的、推荐的示例代码:

@Configuration
@ConfigurationProperties(prefix = "my")
@PropertySource("classpath:my.properties")
public class MyConfig {
    private String property;

    @Autowired
    private Environment env;

    // getter and setter

    public String getPropertyFromEnv(String key) {
        return env.getProperty(key);
    }
}

@RestController
public class MyController {
    @Autowired
    private MyConfig myConfig;

    @GetMapping("/property")
    public String getProperty() {
        return myConfig.getProperty();
    }

    @GetMapping("/propertyFromEnv")
    public String getPropertyFromEnv(@RequestParam String key) {
        return myConfig.getPropertyFromEnv(key);
    }
}

在上面的示例中,MyConfig 类使用了 @ConfigurationProperties 注解和 @PropertySource 注解读取配置文件,并将配置项映射到 property 属性中。MyController 类中的两个接口分别使用了 MyConfig 类中的两个方法来读取配置值。
希望这些示例可以帮助你更好地理解 Spring Boot 的配置文件读取方式。

总结

Spring Boot 读取配置文件的原理是通过 Spring Boot 的自动配置机制实现的。Spring Boot 支持多种方式读取配置文件,包括使用 @Value 注解、@ConfigurationProperties 注解、@PropertySource 注解和 Environment 对象。其中,@ConfigurationProperties 注解是最常用的方式,它可以将配置文件中的配置项映射到一个 Java 类中,使用起来非常方便。文章来源地址https://www.toymoban.com/news/detail-615399.html

到了这里,关于【Java】读取 springboot 配置文件内容的几种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 读取文件的几种方式

    在 Java 中有几种常用的方式来读取文件: 使用 FileInputStream 类以字节的方式读取文件。 使用 BufferedReader 在字符输入流上包装一个缓冲区,以行为单位读取文件。 使用 Scanner 类以分隔符为标志读取文件。 使用 Files 类的 readAllLines 方法一次性读取所有行。 使用 ObjectInputStream 反

    2024年02月14日
    浏览(32)
  • Java读取文件的几种方式

    1. 使用流读取文件 2. 使用JDK1.7提供的NIO读取文件(适用于小文件) 3. 使用JDK1.7提供的NIO读取文件(适用于大文件) 4. 使用JDK1.4提供的NIO读取文件(适用于超大文件) 5. 使用cmmons-io依赖提供的FileUtils工具类读取文件 添加依赖: 6. 使用cmmons-io依赖提供的IOtils工具类读取文件 添加依赖:

    2024年02月16日
    浏览(39)
  • Python读取CSV文件的几种方法

    话不多说,开干!!! 目录 1. 使用 csv 模块 2.使用 numpy 库 3.使用pandas库 4.使用标准库中的 csv 模块 5.注意事项 (1)项目目录如下图所示: (2)代码如下: (3)效果如下: (1)项目结构如下: (2)代码如下: (3)效果如下: (1)项目结构如下: (2)代码如下: (

    2024年02月08日
    浏览(47)
  • 【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】

    Spring 框架可以说是 Java 开发中最重要的框架,功能 非常 强大 中文文档:https://springdoc.cn/spring/ 官网:https://spring.io/ Spring makes Java Simple、modern、productive … Spring 框架的几个核心概念: IoC: I nversion o f C ontrol:控制反转 DI: D ependency I njection:依赖注入 AOP: A spect O riented P rogram

    2024年02月09日
    浏览(33)
  • SpringBoot读取配置文件中的内容

    配置文件application.yml: Environment 是 springboot 核心的环境配置接口,它提供了简单的方法来访问应用程序属性,包括系统属性、操作系统环境变量、命令行参数、和应用程序配置文件中定义的属性等等。 Springboot 程序启动加载流程里,会执行SpringApplication.run中的prepareEnvironmen

    2024年01月21日
    浏览(45)
  • Java获取Java文件路径的几种方法

    Java获取Java文件路径的几种方法 在Java开发中,获取Java文件的路径是一项常见的任务。无论是读取文件、写入文件还是对文件进行其他操作,都需要先获得文件的路径。本文将介绍几种获取Java文件路径的方法,并提供相应的代码示例和详细描述。 方法一:使用相对路径 相对

    2024年02月07日
    浏览(41)
  • 17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式

    其实本质和.properties文件的是一样的。 Spring Boot默认使用SnakeYml工具来处理YAML配置文件,SnakeYml工具默认就会被spring-boot-starter导入,因此无需开发者做任何额外配置。 YAML本质是JSON的超级,它在表示结构化文档时更有表现力。 ▲ properties文件使用 .分隔符 作为结构化的表现:

    2024年02月14日
    浏览(32)
  • Unity读取Json的几种方法

    目录 存入和读取JSON工具 读取本地Json文件 1、unity自带方法 类名:JsonUtility          序列化:ToJson()                    反序列化:FromJson()         用于接收的JSON实体类需要声明 [Serializable]  序列化 实体类中的成员变量要是字段而不是属性{get;set;} 处理数组的话,外

    2024年01月21日
    浏览(29)
  • 【Java干货】Eclipse配置JDK和设置编译版本的几种方法

    【Java干货】Eclipse配置JDK和设置编译版本的几种方法 大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群~欢迎点击链接直达 今天做外包的时候给客户配置e

    2024年02月09日
    浏览(32)
  • Unity中常用的几种读取本地文件方式

    使用的命名空间如下 using LitJson; using System.Collections.Generic; using System.IO; using System.Text; using UnityEngine; using UnityEngine.Networking; 1、通过UnityWebRequest获取本地StreamingAssets文件夹中的Json文件 View Code 2、通过UnityWebRequest和StreamReader读取本地StreamingAssets文件夹中的Json文件 View Code  3、通

    2024年02月04日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包