SpringBoot读取配置文件方式


前言

日常开发中,我们创建SpringBoot项目时,会直接在已有的resource目录下的application.properties中配置信息或者新建一个application.yml中配置信息,让项目读取使用。那除了这种方式,还有其他方式吗?有的,我们一探究竟!


一、properties和yaml/yml的区别

  1. 优先级不同
    properties优先级是高于yml的,但读取顺序是先yml后properties。如果两种文件同时存在,不同的部分以properties为准,是互补的关系。
  2. 写法不同
    properties是以点分开,yml是以空格分开
application.properties文件配置:

server.port=9090

gx.msg=hi
gx.age=15
gx.dog.name=${gx.msg}
gx.dog.age=${gx.age}

#---------------------------------------------

application.yml文件配置:

server:
  port: 9090

gx:
  msg: hi
  age: 15
  dog: 
    name: ${gx.msg}_dog
    age: ${gx.age}

#以空格的缩进程度来控制层级关系,空格个数不重要。

二、配置文件存放位置

根据SpringBoot官方文档,配置文件一般可以放在这4种地方:

1、A /config subdirectory of the current directory
2、The current directory
3、A classpath /config package
4、The classpath root

即:

  1. java 命令当前运行目录下的 config 目录;
  2. java 命令当前运行目录;
  3. classpath 目录下的 config 目录;
  4. classpath 目录下;

这四种优先级依次降低。如果四个地方我都放了配置文件,会优先使用 java 命令当前运行目录下的 config 目录;

具体先后如下(比如jar在target目录下):

target/
  |- config/
       |- application.properties      (1)
  |- application.properties           (2)     
  |- xxx.jar
 	   |- config/
            |- application.properties (3)
       |- application.properties      (4)
       

拓展: 通过–spring.config.location=XXX手动指定配置文件所在目录

cd target/
java -jar xxx.jar --spring.config.location=/data/config/springboot-sample/application.properties

# 或者只给目录. 注意: 一定要以斜线`/`结尾
java -jar app.jar --spring.config.location=/data/config/springboot-sample/

官网文档

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

冉木

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

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

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

打赏作者

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

抵扣说明:

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

余额充值