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文件中的属性名一致

相关推荐
CopyLower3 分钟前
Java 性能优化:从原理到实践的全面指南
java·开发语言·性能优化
ゞ 正在缓冲99%…7 分钟前
leetcode14.最长公共前缀
java·算法·leetcode
努力的搬砖人.36 分钟前
Spring Boot集成MinIO的详细步骤
java·spring boot·后端
12lf41 分钟前
4月16号
java
掉鱼的猫1 小时前
Solon AI MCP Server 入门:Helloworld (支持 java8 到 java24。国产解决方案)
java·mcp
带刺的坐椅1 小时前
Solon AI MCP Server 入门:Helloworld (支持 java8 到 java24。国产解决方案)
java·ai·solon·mcp·mcp-server
阿里云云原生1 小时前
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
java·mcp
Ramseyuu2 小时前
java面试篇 4.9
java·开发语言·面试
repetitiononeoneday2 小时前
java基础课程-springmvc课程
java·开发语言
Mr.每天进步一小步2 小时前
每天记录一道Java面试题---day39
java·jvm·面试