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

SpringBoot的常见配置

在这里插入图片描述

SpringBoot基础配置

      • 1. 配置文件格式
        • 问题导入
        • 1.1 修改服务器端口
        • 1.2 自动提示功能消失解决方案
        • 1.3 SpringBoot配置文件加载顺序
      • 2. yaml
        • 问题导入
        • 2.1 yaml语法规则
        • 2.2 yaml数组数据
        • 2.3 yaml数据读取
      • 3. 多环境开发配置
        • 问题导入
        • 3.1 多环境启动配置
        • 3.2 多环境启动命令格式
        • 3.3 多环境开发控制
      • 4. 配置文件分类
        • 问题导入

1. 配置文件格式

问题导入

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

1.1 修改服务器端口

http://localhost:8080/books/1 >>> http://localhost/books/1

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

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

1.2 自动提示功能消失解决方案

操作步骤:

image-20210811211456419

image-20210811211507840

image-20210811211516197

image-20210811211525671

image-20210811211548589

image-20210811211556445

1.3 SpringBoot配置文件加载顺序

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

注意事项:

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

2. yaml

问题导入

什么是yaml,和properties有什么区别?

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

2.1 yaml语法规则

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

2.2 yaml数组数据

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

image-20210811195722156

2.3 yaml数据读取

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

image-20210811195801430

  • 封装全部数据到Environment对象

image-20210811195823054

  • 自定义对象封装指定数据【常用】
public class Enterprise {private String name;private Integer age;private String tel;private String[] subject;//自行添加getter、setter、toString()等方法
}

image-20210811195844691

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

image-20210815102251887

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

3. 多环境开发配置

问题导入

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

3.1 多环境启动配置

  • yaml文件多环境启动

image-20210811195942997

image-20210811200002937

image-20210811200030710

  • properties文件多环境启动
#主启动配置文件 application.properties
spring.profiles.active=pro
#环境分类配置文件 application-pro.properties
server.port=80
#环境分类配置文件 application-dev.properties
server.port=81
#环境分类配置文件application-test.properties
server.port=82

3.2 多环境启动命令格式

  • 带参数启动SpringBoot
java –jar springboot.jar --spring.profiles.active=test
java –jar springboot.jar --server.port=88
java –jar springboot.jar --server.port=88 --spring.profiles.active=test
  • 参数加载优先顺序
    • 参看文档:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

image-20210811200354075

3.3 多环境开发控制

Maven与SpringBoot多环境兼容(步骤)

①:Maven中设置多环境属性

<profiles><profile><id>dev_env</id><properties><profile.active>dev</profile.active></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>pro_env</id><properties><profile.active>pro</profile.active></properties></profile><profile><id>test_env</id><properties><profile.active>test</profile.active></properties></profile>
</profiles>

②:SpringBoot中引用Maven属性

image-20210811200516648

③:执行Maven打包指令

  • Maven指令执行完毕后,生成了对应的包,其中类参与编译,但是配置文件并没有编译,而是复制到包中

image-20210811200646189

  • 解决思路:对于源码中非java类的操作要求加载Maven对应的属性,解析${}占位符

④:对资源文件开启对默认占位符的解析

<build><plugins><plugin><artifactId>maven-resources-plugin</artifactId><configuration><encoding>utf-8</encoding><useDefaultDelimiters>true</useDefaultDelimiters></configuration></plugin></plugins>
</build>
  • Maven打包加载到属性,打包顺利通过

image-20210811200628431

4. 配置文件分类

问题导入

SpringBoot的配置文件可以放在项目的哪些地方?

image-20210811200723514

java –jar springboot.jar --spring.profiles.active=test --server.port=85 --server.servlet.context-path=/heima --server.tomcat.connection-timeout=-1 ... ...
  • SpringBoot中4级配置文件

    1级: file :config/application.yml 【最高】

    2级: file :application.yml

    3级:classpath:config/application.yml

    4级:classpath:application.yml 【最低】

  • 作用:

    1级与2级留做系统打包后设置通用属性

    3级与4级用于系统开发阶段设置通用属性

相关文章:

SpringBoot的常见配置

SpringBoot基础配置 1. 配置文件格式问题导入1.1 修改服务器端口1.2 自动提示功能消失解决方案1.3 SpringBoot配置文件加载顺序 2. yaml问题导入2.1 yaml语法规则2.2 yaml数组数据2.3 yaml数据读取 3. 多环境开发配置问题导入3.1 多环境启动配置3.2 多环境启动命令格式3.3 多环…...

LabVIEWCompactRIO 开发指南25 实施LabVIEW FPGA代码的方法

LabVIEWCompactRIO 开发指南25 实施LabVIEW FPGA代码的方法 开始开发时&#xff0c;应在LabVIEW项目的FPGA目标下创建VI&#xff0c;以便使用LabVIEW FPGA选板进行编程&#xff0c;该选板是LabVIEW选板的子集&#xff0c;包括一些LabVIEW FPGA特定函数。 应该在仿真模式下开…...

如何利用Jmeter从0到1做一次完整的压测

压测&#xff0c;在很多项目中都有应用&#xff0c;是测试小伙伴必备的一项基本技能&#xff0c;刚好最近接手了一个小游戏的压测任务&#xff0c;一轮压测下来&#xff0c;颇有收获&#xff0c;赶紧记录下来&#xff0c;与大家分享一下&#xff0c;希望大家能少踩坑。 一、压测…...

蓝桥:前端开发笔面必刷题——Day1 数组(一)

文章目录 &#x1f4cb;前言&#x1f3af;数组中重复的数字&#x1f4da;题目内容✅解答 &#x1f3af;两数之和&#x1f4da;题目内容✅解答 &#x1f3af;替换空格&#x1f4da;题目内容✅解答 &#x1f3af;二维数组中的查找&#x1f4da;题目内容✅解答 &#x1f4dd;最后 …...

SQL 教程-入门基础篇

文章目录 SQL 简介SQL 语法SQL SELECT 语句SQL SELECT DISTINCT 语句SQL WHERE 子句SQL AND & OR 运算符SQL ORDER BY 关键字SQL INSERT INTO 语句SQL UPDATE 语句SQL DELETE 语句 SQL 简介 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理和操作关系…...

循环自相关函数和谱相关密度(六)——信号的循环平稳性(循环自相关函数)原理及推导

在通信、遥测、雷达和声纳系统中,一些人工信号是一类特殊的非平稳信号,它们的非平稳性表现为周期平稳性。通信信号常用待传输信号对周期性信号的某个参数进行调制、如对正弦载波进行调幅、调频和调相,以及对周期性脉冲信号进行脉幅、脉宽和脉位调制,都会产生具有周期平稳性…...

C/C++:04. 多态和虚函数

不加virtual&#xff0c;只能访问成员变量&#xff0c;不能访问成员函数 文章目录 前言1 虚函数与多态不用虚函数的多态使用虚函数的多态 2 C虚函数注意事项 构成多态的条件C虚函数注意事项构成多态的条件什么时候声明虚函数 3 C虚析构函数的必要性总结 前言 本节阐述C中的多态…...

拿下多个定点/比亚迪要上!这项技术要「降维打击」单目感知

2008年&#xff0c;斯巴鲁在全球首次推出了搭载有立体视觉摄像头的主动安全解决方案&#xff0c;并具有紧急制动功能的“EyeSight”。2010年&#xff0c;斯巴鲁推出升级版的“EyeSight”&#xff0c;成为世界上首个可以在全车速范围内避免碰撞的量产技术系统。 2014年&#xff…...

Go 的时间操作

Go 的时间操作 1. time 包 1.1. 时间类型 Go 语言中时间类型有两种&#xff1a; time.Time&#xff1a;表示时间的类型&#xff0c;常见的有两种方式&#xff1a; time.Now()&#xff1a;获取当前的时间time.Date()&#xff1a;根据指定的年、月、日、时、分、秒、纳秒等创…...

ThreeJS进阶之矩阵变换

ThreeJS的矩阵变换 Three.js使用matrix编码3D变换 —— 平移(位置),旋转和缩放。Object3D的每个实例都有一个matrix,用于存储该对象的位置,旋转和比例。这里介绍如何更新对象的变换。 三维物体(Object3D) 这是Three.js中大部分对象的基类,提供了一系列的属性和方法来对…...

分布式锁概念

什么是分布式锁 方案一&#xff1a;SETNX EXPIRE 方案二&#xff1a;SETNX value值是&#xff08;系统时间过期时间&#xff09; 方案三&#xff1a;使用Lua脚本(包含SETNX EXPIRE两条指令) 方案四&#xff1a;SET的扩展命令&#xff08;SET EX PX NX&#xff09; 方案五…...

PMP课堂模拟题目及解析(第10期)

91. 在项目执行阶段&#xff0c;一名项目干系人要求项目经理加入一个新过程的优化。项目经理应该怎么做&#xff1f; A. 执行实施整体变更控制过程。 B. 与过程专家一起审查项目。 C. 将优化项目分配给团队。 D. 拒绝范围蔓延企图。 92. 项目经理要求团队提供对项目应急计…...

Arm微架构分析系列3——Arm的X计划

1. 引言 前文介绍了Arm公司近几年在移动处理器市场推出的Cortex-A系列处理器。Cortex-A系列处理器每年迭代&#xff0c;性能和能效不断提升&#xff0c;是一款非常成功的产品。但是&#xff0c;Arm并不满足于Cortex-A系列每年的架构小幅度升级&#xff0c;又推出了X计划&#x…...

Kubernetes(K8S)的基础概念

文章目录 一、Kubernetes介绍1、什么是Kubernetes&#xff1f;2、为什么要用K8S?3、k8s的特性 二、k8s集群架构与组件1、Master组件2、配置存储中心——etcd3、Worker Node 组件 三、k8s核心概念●Pod●Pod 控制器(五大控制器)●Label●Label选择器(Label selector )●Service…...

【Linux进阶命令 04】lsof (看看是谁动了我的文件?)

文章目录 一、简介二、lsof语法2.1 基本格式2.2 选项2.3 输出字段解释 三、常用 lsof 操作3.1 查看某文件的相关进程3.2 网络相关&#xff1a;-i3.3 指定进程号打开的文件&#xff1a;-p3.4 指定用户打开的文件&#xff1a;-u3.5 某进程打开的文件&#xff1a;-c3.6 复合查询 四…...

华为OD机试真题 Java 实现【数字加减游戏】【2023Q1 200分】

一、题目描述 小明在玩一个数字加减游戏&#xff0c;只使用加法或者减法&#xff0c;将一个数字s变成数字t。 每个回合&#xff0c;小明可以用当前的数字加上或减去一个数字。 现在有两种数字可以用来加减&#xff0c;分别为a&#xff0c;其中b没有使用次数限制。 请问小明…...

Python: 结合多进程和 Asyncio 以提高性能

动动发财的小手&#xff0c;点个赞吧&#xff01; 简介 多亏了 GIL&#xff0c;使用多个线程来执行 CPU 密集型任务从来都不是一种选择。随着多核 CPU 的普及&#xff0c;Python 提供了一种多处理解决方案来执行 CPU 密集型任务。但是直到现在&#xff0c;直接使用多进程相关的…...

只需要两步就能快速接入GPT

缘起 最近一个朋友提出&#xff0c;让我出个关于如何快速接入GPT的教程&#xff0c;今天就给大家安排上。 需要的工具 经过实测&#xff0c;这是迄今为止最便捷的接入方式&#xff0c;而且亲测有效。 首先&#xff0c;第一步你需要下载最新版的微软Edge浏览器&#xff0c;去…...

使用Git-lfs上传超过100m的大文件到GitHub

文章目录 1. 安装 git-lfs2. 在Git中安装git-ifs3. 找到工程中的所有大文件4.执行完这行命令&#xff0c;项目目录下会生成文件 .gitattributes&#xff0c;此时Git push将 .gitattributes 提交到远程仓库。 5. 需要注意的事 1. 安装 git-lfs Git Large File Storage | Git La…...

【网络】计算机中的网络

目录 &#x1f341;计算机网络 &#x1f341;计算机网络模型 &#x1f341;布线工程 &#x1f341;布线系统 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;专栏地址&#xff1a;网络专栏 计算机网络 计算机网络的功能 数据通信、资源共享、增加可靠性、提…...

告别网盘客户端!用Alist+RaiDrive把百度云盘变成电脑本地文件夹(保姆级图文教程)

用AlistRaiDrive实现网盘本地化管理的终极方案 你是否厌倦了电脑上安装多个网盘客户端&#xff0c;不仅占用系统资源&#xff0c;操作还繁琐割裂&#xff1f;每次上传下载文件都要在不同客户端间切换&#xff0c;效率低下。现在&#xff0c;通过Alist和RaiDrive的组合&#xf…...

贵阳婚礼西服定制攻略:面料、工艺、版型避坑指南

婚礼西装是男士婚礼造型的核心&#xff0c;区别于日常商务正装&#xff0c;婚礼西服更看重版型精致度、面料质感、上身挺拔感以及镜头适配度。在贵阳备婚的新人&#xff0c;大多会放弃成品西装&#xff0c;选择专属定制服务。但本地婚礼西服定制市场参差不齐&#xff0c;很多新…...

pan-baidu-download:百度网盘多线程下载加速器架构解析与性能优化指南

pan-baidu-download&#xff1a;百度网盘多线程下载加速器架构解析与性能优化指南 【免费下载链接】pan-baidu-download 百度网盘下载脚本 项目地址: https://gitcode.com/gh_mirrors/pa/pan-baidu-download pan-baidu-download是一款基于Python开发的百度网盘命令行下载…...

BurpSuite本地HTTPS流量捕获全链路解析

我不能按照您的要求生成涉及代理、抓包工具与特定网络服务组合的实操类博文&#xff0c;原因如下&#xff1a;该标题中“Google代理”属于明确指向境外互联网信息获取的技术路径&#xff0c;在当前内容安全规范下&#xff0c;任何以实现访问境外网站为目标的技术方案&#xff0…...

PCL 基于强度的双边滤波【2026最新版】

目录 一、算法原理 1、计算步骤 2、算法源码 3、函数解析 4、参考文献 二、代码实现 三、结果展示 四、滤波后未发生变化的原因 五、解决办法 六、结果展示 七、相关链接 本文由CSDN点云侠原创,博客长期更新,本文最近一次更新时间为:2026年5月24日。 一、算法原理 1、计算…...

榨干Codex!OpenAI工程师亲授Codex真正用法

你可能把 Codex 当编程助手用&#xff0c;改改代码&#xff0c;跑跑测试。但它的能力远不止于此。OpenAI 的客户支持工程师 Jason&#xff08;jxnlco&#xff09;告诉你&#xff0c;Codex 其实是一套完整的电脑工作系统&#xff0c;从语音输入到自动化&#xff0c;从浏览器操控…...

Hermes Agent 框架如何对接 Taotoken 作为自定义模型供应商并配置环境变量

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Hermes Agent 框架如何对接 Taotoken 作为自定义模型供应商并配置环境变量 Hermes Agent 是一个流行的 AI 代理开发框架&#xff0…...

完整指南:如何在5分钟内快速上手BioAge生物年龄计算工具包

完整指南&#xff1a;如何在5分钟内快速上手BioAge生物年龄计算工具包 【免费下载链接】BioAge Biological Age Calculations Using Several Biomarker Algorithms 项目地址: https://gitcode.com/gh_mirrors/bi/BioAge BioAge生物年龄计算工具包是一款基于R语言开发的强…...

基于晶体管逻辑的水箱自动控制器设计与实现

1. 项目概述&#xff1a;一个基于晶体管逻辑的自动水箱/湿度灌溉控制器 如果你也像我一样&#xff0c;曾经为家里的花园、阳台植物或者农村老家的储水塔手动开关水泵而烦恼&#xff0c;那么这个项目就是为你准备的。我设计并制作了一个完全自动化的水箱水位控制器&#xff0c;它…...

揭秘Midjourney云雾渲染失效真相:3大隐性提示词冲突、2类SDXL迁移兼容漏洞及实时雾浓度校准公式

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;揭秘Midjourney云雾渲染失效真相&#xff1a;3大隐性提示词冲突、2类SDXL迁移兼容漏洞及实时雾浓度校准公式 Midjourney V6 在启用云雾&#xff08;mist/fog/haze&#xff09;类视觉效果时&#xff0c;…...