SpringBoot 5. 配置文件

尚硅谷

官方文档

1. yaml 文件

适合用来做以数据为中心的配置文件。

1.1 基本语法

  • key: value
  • 大小写敏感
  • 使用缩进表示层级关系
  • # 表示注释
  • 字符串无需加引号,''"" 表示字符串内容,单引号会原样输出,双引号会识别转义字符

1.2 数据类型

1.2.1 字面量

  1. date
  2. boolean
  3. string
  4. number
  5. null

1.2.2 对象

# 行内写法
k: {k1: v1, k2: v2, k3: v3}
# 或者
k:k1: v1k2: v2k3: v3

1.2.3 数组

# 行内写法
k: [v1, v2, v3]
# 或者
k:- v1- v2- v3

1.2.4 示例

创建 Person 类和 Pet 类:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Component
@ConfigurationProperties(prefix = "person")
public class Person {private String userName;private Boolean boss;private Date birth;private Integer age;private Pet pet;private String[] interests;private List<String> animal;private Map<String, Object> score;private Set<Double> salaries;private Map<String, List<Pet>> allPets;
}@Data
@NoArgsConstructor
@AllArgsConstructor
public class Pet {private String name;private Double weight;
}

在 Yaml 中添加:

person:userName: 张三boss: falsebirth: 2022/09/07 23:15:33age: 18pet:name: tomcatweight: 23.4interests: [唱, 跳, Rap, 篮球]animal:- jerry- marioscore:english:first: 30second: 40third: 50math: [131, 140, 148]chinese: {first: 128, second: 136}salaries: [3999, 4999.98, 5999.99]allPets:sick:- {name: 阿猫}- {name: 杰瑞, weight: 47}health: [{name: mario, weight: 47}]

HelloController 中添加:

@Autowired
Person person;@RequestMapping("/person")
public Person person(){return person;
}

访问 http://localhost:8080/person

2. 配置提示

默认情况下,Idea 不给 yaml 文件提示自定义类。
根据 官网文档,引入依赖:

<!--   yaml 提示     -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional>
</dependency>

项目重启一下,然后就有提示了:

打包的时候避免将上述依赖一起打包(2.7.3 版本不用做该操作了,已经默认不导入了):

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId></exclude></excludes></configuration></plugin></plugins></build>

[学习记录] SpringBoot 5. 配置文件相关推荐

  1. 【JavaEE企业应用实战学习记录】struts配置文件详细解析

    1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <!DOCTYPE struts PUBLIC 4 ...

  2. SpringBoot学习记录

    文章目录 一.Spring Boot 入门 1.SpringBoot简介 优点 2.微服务 3.环境约束 4.Maven设置 创建一个maven工程 导入spring boot相关的依赖 编写一个主程 ...

  3. springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis

    本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...

  4. RabbitMQ的6种工作模式的学习记录,普通MAVEN和springboot项目整合rabbitmq的API详解

    1.RabbitMQ后台管理页面 2.RabbitMQ 核心(自我理解) 3.RabbitMQ6种工作模式介绍 4. RabbitMQ的消息可靠性 5.RabbitMQ普通MAVEN项目使用 6.Sp ...

  5. Redis的学习记录

    Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...

  6. SpringBoot基础学习之SpringBoot配置(上篇)

    前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个SpringB ...

  7. 近两年火热的微服务springboot不同配置文件详细讲解

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...

  8. Android socket 学习记录 之 执行new socket(ip, port)程序崩溃

    这段时间在学习Android的socket编程,我不是专做APP的,做的是bootloader.驱动.hal.framework这个线的,也就是系统搭建和功能优化设计.为了打通这整条线,为此学习了不少 ...

  9. PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建

    PHP学习记录第一篇:Ubuntu14.04下LAMP环境的搭建 最近一段时间会学习一下PHP全栈开发,将会写一系列的文章来总结学习的过程,以自勉. 第一篇记录一下LAMP环境的安装 0. 安装Apa ...

最新文章

  1. 安徽大学计算机语言学考研真题,安徽大学外国语言学及应用语言学考研经验考研真题考研参考书复试分数线...
  2. kernel并发控制:自旋锁、互斥体、中断屏蔽
  3. 服务器kvm切换器维修,KVM切换器常见问题
  4. etc php5 conf.d,php – nginx:[emerg]“location”指令不允许在/etc/nginx/conf.d/default.conf中使用:...
  5. 一坛酸菜让白象卖断货,方便面圈的鸿星尔克要逆袭?
  6. 利用wojilu框架仿一个网站的全过程(Step by Step利用wojilu框架开发网站系列二 附源码)...
  7. ModBus RTU协议CRC校验方式最简实现
  8. 尚硅谷vue基础笔记
  9. mysql 网页_mysql网页客户端工具
  10. 网页消息服务器异常联系管理员,服务器故障请与管理员联系
  11. Android模仿微信浮窗功能的效果实现
  12. 办公小技巧,批量修改文件名,手把手教你
  13. Win7任务栏右下角图标空白、点击无反应问题的解决
  14. c语言读取一行的前几个字符串,c语言读取文件某一列 c语言 读取文件中某一行的前一行...
  15. 汕头大学计算机英语复试,汕头大学计算机系2021年硕士研究生复试办法
  16. HTML5七夕情人节表白网页(庆祝生日蛋糕烟花特效) HTML+CSS+JavaScript
  17. java时间戳防重放_API防重放机制
  18. 如何用curl做PUT请求?
  19. 如何排查内存溢出问题
  20. TDS学习文档——入门

热门文章

  1. 《Unity Shader入门精要》笔记02 第1章+第2章
  2. 2020-09-05(面向对象相关练习题,部分附源码)
  3. 怎么注册国外企业电子邮箱地址?有微信企业邮箱登录入口吗?
  4. 1064 例题5-1-5 连续自然数求和
  5. 那些C++程序让你笑三天的奇葩名字
  6. 颠覆性AI程序:人工智能如何推动天文学创新?
  7. 3种方法删除7-Zip压缩包的密码
  8. v-for 和 v-show 的区别
  9. c#拼图碎片形状_添加你的拼图碎片
  10. 按可比价格计算的意义