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

相关推荐
许彰午7 分钟前
我手写了一个 Java 内存数据库(二):B+ 树的插入与分裂
java·开发语言·面试
zhouwy1138 分钟前
Java 快速入门笔记:从基础语法到 Spring Boot 实战
java
极创信息32 分钟前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
SamDeepThinking1 小时前
并发量就算只有2,该上锁还得上呀
java·后端·架构
Sam_Deep_Thinking1 小时前
如何让订单系统和营销系统解耦
java·架构·系统架构
lzhdim1 小时前
SQL 入门 12:SQL 视图:创建、修改与可更新视图
java·大数据·服务器·数据库·sql
FQNmxDG4S2 小时前
Maven依赖管理:版本冲突解决与生命周期控制
java·数据库·maven
傻瓜搬砖人3 小时前
Spring集成Web环境
java·spring·maven
FQNmxDG4S3 小时前
Java泛型编程:类型擦除与泛型方法的应用场景
java·开发语言·python
GottdesKrieges3 小时前
OceanBase恢复常见问题
java·数据库·oceanbase