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

相关推荐
long31612 分钟前
java 工厂方法设计模式 FactoryMethod
java·开发语言·后端·设计模式
萤丰信息2 小时前
智慧工地从工具叠加到全要素重构的核心引擎
java·大数据·人工智能·重构·智慧城市·智慧工地
BillKu4 小时前
Spring Boot 3中JWT密钥安全存储方案
spring boot·后端·安全
找不到、了4 小时前
Java设计模式之《原型模式》--深、浅copy
java·设计模式·原型模式
程序员岳焱6 小时前
Java 调用 Python 脚本:实现 HelloWorld
java·后端·python
etcix6 小时前
wrap cpp variant as dll for c to use
java·c语言·开发语言
我在北国不背锅7 小时前
基于Java的Markdown转Word工具(标题、段落、表格、Echarts图等)
java·word·echarts·markdown
pengzhuofan7 小时前
Java设计模式-建造者模式
java·设计模式·建造者模式
夕四丶8 小时前
【java实现一个接口多个实现类通用策略模式】
java·策略模式