当前位置: 首页 > 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级用于系统开发阶段设置通用属性

http://www.lryc.cn/news/69003.html

相关文章:

  • LabVIEWCompactRIO 开发指南25 实施LabVIEW FPGA代码的方法
  • 如何利用Jmeter从0到1做一次完整的压测
  • 蓝桥:前端开发笔面必刷题——Day1 数组(一)
  • SQL 教程-入门基础篇
  • 循环自相关函数和谱相关密度(六)——信号的循环平稳性(循环自相关函数)原理及推导
  • C/C++:04. 多态和虚函数
  • 拿下多个定点/比亚迪要上!这项技术要「降维打击」单目感知
  • Go 的时间操作
  • ThreeJS进阶之矩阵变换
  • 分布式锁概念
  • PMP课堂模拟题目及解析(第10期)
  • Arm微架构分析系列3——Arm的X计划
  • Kubernetes(K8S)的基础概念
  • 【Linux进阶命令 04】lsof (看看是谁动了我的文件?)
  • 华为OD机试真题 Java 实现【数字加减游戏】【2023Q1 200分】
  • Python: 结合多进程和 Asyncio 以提高性能
  • 只需要两步就能快速接入GPT
  • 使用Git-lfs上传超过100m的大文件到GitHub
  • 【网络】计算机中的网络
  • 什么是语音识别的语音助手?
  • 自己动手写一个加载器
  • C# 性能优化和Unity性能优化
  • 面试题背麻了,花3个月面过华为测开岗,拿个26K不过分吧?
  • 跟着我学 AI丨教育 + AI = 一对一教学
  • 1-动态规划算法理论基础
  • kafka延时队列内部应用简介
  • 【网络】HTTPHTTPS协议
  • 因子图优化
  • JVM 垃圾回收相关算法
  • [Bing Chat] 以某某这个数据结构 编一个故事 要求不能说出某某这个数据结构