SpringBoot读取配置文件的几种方式

一、介绍

在Spring Boot项目中我们经常需要读取application.yml配置文件的自定义配置,今天就来罗列一下从yaml读取配置文件的一些常用手段和方法。

二、@Value

这种是比较简单的方式,直接使用@Value注解获取配置文件信息。
使用方式如下:
application.yml配置文件
在这里插入图片描述

直接使用@Value注解@Value(“${}”),默认读取application.yml中的配置信息。

在这里插入图片描述

在这里插入图片描述

三、@ConfigurationProperties

@ConfigurationProperties注解提供了我们将多个配置选项注入复杂对象的能力。它要求我们指定配置的共同前缀。

可以使用weChat接收we-chat的值,因为这种形式支持从驼峰camel-case到短横分隔命名kebab-case的自动转换。
比如:
默认读取application.yml中的配置信息。
实体类:
在这里插入图片描述
在这里插入图片描述

注意:使用这种方式,yml中的配置信息不能有大写,否则读取不到。

单独使用@ConfigurationProperties的话依然无法直接使用配置对象,因为它并没有被注册为Spring Bean。我们可以通过两种方式来使得它生效。

  1. 可以使用@Component@Configuration等注解注入Spring IoC使之生效。
  2. 还可以直接使用注解@EnableConfigurationProperties进行注册,这样就不需要显式声明配置类为Spring Bean了。
    另外还有一个注解可以直接扫描在Spring Boot 2.2.0.RELEASE中提供了一个扫描注解@ConfigurationPropertiesScan。它可以扫描特定包下所有的被@ConfigurationProperties标记的配置类,并将它们进行IoC注入。

注意:这非常适合自动注入和批量注入配置类的场景,但是有版本限制,必须在2.2.0及以上。

四、@PropertySource

使用“@Value”与“@ConfigurationProperties”可以从全局配置文件“application.properties”或者“application.yml”中取值,然后为需要的属性赋值。当应用比较大的时候,如果所有的内容都当在一个配置文件中,就会显得比较臃肿,同时也不太好理解和维护,此时可以将一个文件拆分为多个,使用 @PropertySource 注解加载指定的配置文件。
例如:
properties文件:

在这里插入图片描述

实体类:
在这里插入图片描述
在这里插入图片描述

注意:
需要有@SpringBootApplication主启动类、和@RunWith(SpringRunner.class)注解
总结:
使用@Value注解可以直接读取application.yml配置文件中的配置信息。
使用@ConfigurationProperties也可以读取application.yml文件中的配置信息。
使用@ConfigurationProperties@PropertySource可以读取指定properties配置文件中的配置信息。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot 提供了多种读取配置文件方式,以下是其中几种常用的方式: 1. application.properties/application.yml:在 src/main/resources 目录下创建 application.properties 或 application.yml 文件,可以在其中设置应用程序的配置信息,例如: ``` server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=root spring.datasource.password=123456 ``` 2. @Value 注解:在代码中使用 @Value 注解读取配置信息,例如: ``` @Value("${server.port}") private int serverPort; @Value("${spring.datasource.url}") private String dataSourceUrl; @Value("${spring.datasource.username}") private String dataSourceUsername; @Value("${spring.datasource.password}") private String dataSourcePassword; ``` 3. @ConfigurationProperties 注解:通过 @ConfigurationProperties 注解将配置文件中的属性值注入到 Bean 中,例如: ``` @ConfigurationProperties(prefix = "spring.datasource") public class DataSourceProperties { private String url; private String username; private String password; // getter/setter } ``` 4. Environment 接口:通过 Environment 接口读取配置信息,例如: ``` @Autowired private Environment env; int serverPort = env.getProperty("server.port", Integer.class); String dataSourceUrl = env.getProperty("spring.datasource.url"); String dataSourceUsername = env.getProperty("spring.datasource.username"); String dataSourcePassword = env.getProperty("spring.datasource.password"); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu_Shihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值