当前位置: 首页 > news >正文

【Spring框架全系列】SpringBoot_3种配置文件_yml语法_多环境开发配置(详细)

文章目录

    • 1.三种配置文件
    • 2. yaml语法
      • 2.1 yaml语法规则
      • 2.2 yaml数组数据
      • 2.3 yaml数据读取
    • 3. 多环境开发配置

1.三种配置文件

问题导入

框架常见的配置文件有哪几种形式?
比如:

jdbc.properties
spring.properties

如果每个技术或者框架都要这么写一个配置文件是不是过于繁琐?
SpringBoot就给我们整合到了一个配置文件,下面就是这个配置文件的三种形式

SpringBoot提供了多种属性配置方式

  • application.properties
server.port=80
  • application.yml
server:port: 81
  • application.yaml
server:port: 82

在这里插入图片描述

SpringBoot配置文件加载顺序(了解)

  • application.properties > application.yml > application.yaml

注意事项:

  1. SpringBoot核心配置文件名为application
  2. SpringBoot内置属性过多,且所有属性集中在一起修改,在使用时,通过提示键+关键字修改属性

2. yaml语法

什么是yaml,和properties有什么区别?
properties文件我们是很熟悉的!

  • YAML(YAML Ain’t Markup Language),一种数据序列化格式
  • 优点:
    • 容易阅读
    • 容易与脚本语言交互
    • 以数据为核心,重数据轻格式
  • YAML文件扩展名
    • .yml(主流)
    • .yaml

2.1 yaml语法规则

  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • #表示注释
  • 核心规则:数据前面要加空格与冒号隔开
    在这里插入图片描述

2.2 yaml数组数据

  • 数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

在这里插入图片描述

2.3 yaml数据读取

    • 使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}

在这里插入图片描述

  • 封装全部数据到Environment对象
    spring给我提供了一个Environment类,可以用来获取值
    在这里插入图片描述 - 自定义对象封装指定数据【重点】(常用)
 public class Enterprise {private String name;private Integer age;private String tel;private String[] subject;//自行添加getter、setter、toString()等方法
}

prefix = “enterprise” 表示在application.yml文件中找以enterprise为开头的来进行封装到我们自定的类
在这里插入图片描述

  • 自定义对象封装数据警告解决方案

在这里插入图片描述
导入相关依赖就行

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

3. 多环境开发配置

在实际开发中,项目的开发环境、测试环境、生产环境的配置信息是否会一致?如何快速切换?

相关文章:

  • Linux【工具 03】Telnet服务安装使用(安全性较差 非特殊情况尽量不要使用)
  • 24.面向对象六大原则
  • 【python深度学习】——tensor内部存储结构|内存优化与as_strided|内存紧凑化contiguous
  • 面试题:说说浏览器的缓存机制
  • WebSocket 断网重连、心跳检测功能封装
  • 极简网络用户手册(1)
  • 【代码随想录算法训练营第37期 第二十八天 | LeetCode93.复原IP地址、78.子集、90.子集II】
  • 算法简单笔记3
  • C语言:(动态内存管理)
  • 攻防世界maze做法(迷宫题)
  • appium元素定位工具_uiautomatorviewer.bat
  • WiFi模块ESP32手机远程控制方法
  • docker学习--最详细的docker run 各子命令解释与应用
  • C# :IQueryable IEnumerable
  • Prism 入门04,导航功能
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Android组件 - 收藏集 - 掘金
  • CSS 提示工具(Tooltip)
  •  D - 粉碎叛乱F - 其他起义
  • eclipse(luna)创建web工程
  • jQuery(一)
  • MySQL主从复制读写分离及奇怪的问题
  • Python打包系统简单入门
  • SQL 难点解决:记录的引用
  • Unix命令
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 回顾 Swift 多平台移植进度 #2
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何学习JavaEE,项目又该如何做?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 删除表内多余的重复数据
  • 深度学习在携程攻略社区的应用
  • 王永庆:技术创新改变教育未来
  • NLPIR智能语义技术让大数据挖掘更简单
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • #HarmonyOS:基础语法
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #QT 笔记一
  • #Z0458. 树的中心2
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $.ajax()
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (8)STL算法之替换
  • (C语言)fread与fwrite详解
  • (二) 初入MySQL 【数据库管理】
  • (二)springcloud实战之config配置中心
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (四)图像的%2线性拉伸
  • (一)80c52学习之旅-起始篇