Springboot读取配置文件

多种配置文件格式

springboot项目中不同配置文件的优先加载顺序 为:properties> yml >yaml>自定义核心类配置

自定义配置文件的加载

一般系统会加载默认的application.properties或者application.yml,但如果使用自定义配置文件,可使用下面方式进行加载:

@PropertySource("classpath:myApplication.properties")加载自定义配置

此种加载方式优先级最低,springboot会先加载系统默认的核心配置类

yml语法:

1、大小写敏感

2、属性层级关系

3、使用缩进表示层级关系 同层级左侧对齐(空格只允许使用空格-两个空格键)

4、属性与之间有空格

读取文件属性

Spring Boot 会按照特定的顺序加载属性文件,并采用最后覆盖原则,这意味着最后读取的属性源将覆盖先前的属性源中相同的属性。

@Value读取配置文件属性

特点:只能读取单一属性

复制代码
#对象
data1:
  66
#多层嵌套
data2:
  key: key
  value: value
#数组
data3:
    - 1
    - 男
    - 李华
data4: [2,男,张明]
#复杂数据类型
data5:
  name:
    - li
    - huang
  subject:
      - 离散数学
      - 数据结构
      - 操作系统
##多维数组
data6:
  -
    name: 老李
    age: 20
  -
    name: 老黄
    age: 40

@Value("${data1}")
    String data1name;
    @Value("${data2.key}")
    String data2name;

    @Value("${data3[2]}")
    String data3name;
    @Value("${data4[1]}")
    String data4name;
    @Value("${data5.subject[1]}")
    String data5name;
    @Value("${data6.[1].name}")
    String data6name;
    @RequestMapping("/show")
    public String test02(){
        System.out.println("读取当前yml文件中data1中的属性==>"+data1name);
        System.out.println("读取当前yml文件中data2中的属性==>"+data2name);
        System.out.println("读取当前yml文件中data3中的属性==>"+data3name);
        System.out.println("读取当前yml文件中data4中的属性==>"+data4name);
        System.out.println("读取当前yml文件中data5中的属性==>"+data5name);
        System.out.println("读取当前yml文件中data6中的属性==>"+data6name);
        return "name";
    }

@ConfigurationProperties读取文件属性

@ConfigurationProperties 是Spring Framework中用于将配置文件中的属性绑定到Java对象的注解,可以达到多属性注入。

复制代码
#将属性封装到实体类中
user:
  id: 1
  name: lihua
  hobby: phino

注意:user属性必须和yml文件中的属性名一致

相关推荐
光依旧6 小时前
MCP实战手记系列(十):MCP Server高可用实战
spring boot·高可用·nginx负载均衡·redis哨兵·mcp·微服务容错·resilience4j熔断
Sarvartha6 小时前
final 关键字
java·开发语言
2601_952047796 小时前
单一策略深度教程:用轻易云把集成任务的报错实时推送到钉钉机器人
java·机器人·钉钉
Joy T6 小时前
Spring AI 项目中的 pom.xml、application.yml 与 Nacos:从依赖管理到运行配置
spring·nacos·pom.xml·profile·参数配置·application.yml
数据狐(Datafox)7 小时前
淘宝图片搜索 API 落地实战:基于以图搜货搭建跨境电商选品系统
java·大数据·微服务
Escalating_xu9 小时前
【C 语言】数据在内存中的存储:补码、大小端、整型陷阱与 IEEE 754 全解析
java·c语言·网络
灯澜忆梦9 小时前
【面向对象编程C++】| 基础语法
java·c++·算法
一个风轻云淡9 小时前
GCC 和 GDB命令简单解读
java·linux·前端