[黑马程序员SpringBoot2]——运维实用篇

news2024/11/23 16:35:55

目录:

  1. 工程打包与运行
  2. 打包插件
  3. Boot工程快速启动(Linux版本)
  4. 临时属性
  5. 配置文件4级分类
  6. 自定义配置文件
  7. 多环境开发(yaml版)
  8. 多环境开发多文件版(yaml版)
  9. 多环境开发多文件版(properties版)
  10. 多环境分组管理
  11. 多环境开发控制
  12. 日志基础操作
  13. 快速创建日志对象
  14. 日志输出格式控制
  15. 文件记录日志

1.工程打包与运行

程序为什么要打包?

SpringBoot项目快速启动(Windows版)

注意事项

  • jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件

 

小结:

  1. SpringBoot工程可以基于java环境下独立运行jar文件启动服务
  2. SpringBoot工程执行mvn命令package进行打包
  3. 执行jar命令:java -jar 工程名.jar

 

2.打包插件 

SpringBoot项目快速启动

SpringBoot打包插件

  • 使用SpringBoot提供的maven插件可以将工程打包成可执行jar包

 

 可执行jar包目录结构

jar包描述文件(MANIFEST.MF)

  • 普通工程

 

  • 基于spring-boot-maven-plugin打包的工程

 

  •  Windonws端口被占用

#查询端口                                        netstat -ano

#查询指定端口                                 netstat -ano | findstr "端口号"

#根据进程PID查询进程名称             tasklist | findstr "进程PID号"

#根据PID杀死任务                           taskkill -f  -pid "进程PID号"

#根据进程名称杀死任务                   taskkill -f -t -im “进程名称" 

3.Boot工程快速启动(Linux版本) 

  • 基于Linux (centeroS7)
  • 安装JDk,且版本不低于打包时使用的JDK版本
  • 安装包保存在/usr/local/自定义目录中或$HOME下
  • 其他操作参照windows版进行

小结:

  • 上传安装包
  • 执行jar命令: java -jar工程名.jar 

4. 临时属性

  • 带属性数启动SpringBoot
  •  java –jar springboot.jar –-server.port=80
  • 携带多个属性启动SpringBoot,属性间使用空格分隔

 

参看 https://docs.spring.io/spring-boot/docs/current/reference/html/spring-bootfeatures.html#boot-features-external-config


 

小结:

  1. 使用jar命令启动springBoot工程时可以使用临时属性替换配置文件中的属性
  2. 临时属性添加方式: java -jar 工程名.jar --属性名=值
  3. 多个临时属性之间使用空格分隔
  4. 临时属性必须是当前boot工程支持的属性,否则设置无效 

临时属性设置(开发环境)

  • 带属性启动SpringBoot程序,为程序添加运行属性

 

  • 通过编程形式带参数启动SpringBoot程序,为程序添加运行参数

  •  不携带参数启动SpringBoot程序

 

小结:

  • 启动springBoot程序时,可以选择是否使用命令行属性为springBoot程序传递启动属性

 

 5.配置文件4级分类

  • SpringBoot中4级配置文件
    • 1级: file : config/application.yml     【最高】
    • 2级: file : application.yml
    • 3级: classpath: config/application.yml
    • 4级: classpath: application.yml      【最低】
  • 2.作用:
    • 1级与2级留做系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控
    • 3级与4级用于系统开发阶段设置通用属性,3级常用于项目经理进行整体项目属性调控

 

小结:

  • 配置文件分为4种
    • 项目类路径配置文件:服务于开发人员本机开发与测试
    • 项目类路径config目录中配置文件:服务于项目经理整体调控
    • 工程路径配置文件:服务于运维人员配置涉密线上环境
    • 工程路径config目录中配置文件:服务于运维经理整体调控
  • 多层级配置文件间的属性采用叠加并覆盖的形式作用于程序 

 

 

6.自定义配置文件 

通过启动参数加载配置文件(无需书写配置文件扩展名)
 

 

  • 注意事项
  • properties与yml文件格式均支持

通过启动参数加载指定文件路径下的配置文件
 

 

  • 注意事项
  • properties与yml文件格式均支持

通过启动参数加载指定文件路径下的配置文件时可以加载多个配置


 

  • 注意事项
  • 多配置文件常用于将配置进行分类,进行独立管理,或将可选配置单独制作便于上线更新维护 

 

自定义配置文件——重要说明

  • 单服务器项目:使用自定义配置文件需求较低
  • 多服务器项目:使用自定义配置文件需求较高,将所有配置放置在一个目录中,统一管理
  • 基于springCloud技术,所有的服务器将不再设置配置文件,而是通过配置中心进行设定,动态加载配置信息

小结:

  • 配置文件可以修改名称,通过启动参数设定
  • 配置文件可以修改路径,通过启动参数设定
  • 微服务开发中配置文件通过配置中心进行设置 
  • SpringBoot在开发和运行环境均支持使用临时参数修改工程配置
  • SpringBoot支持4级配置文件,应用于开发与线上环境进行配置的灵活设置
  • SpringBoot支持使用自定义配置文件的形式修改配置文件存储位置
  • 基于微服务开发时配置文件将使用配置中心进行管理

 

 7.多环境开发(yaml版)

多环境

 

 

 多环境开发(YAML版)

 

application.yml

spring:
  profiles:
    active: dev
---
#生产环境
server:
  port: 80
spring:
  config:
    activate:
      on-profile: pro
---
#开发环境
server:
  port: 81
spring:
  config:
    activate:
      on-profile: dev
---
#测试环境
server:
  port: 82
spring:
  config:
    activate:
      on-profile: test

小结:

  1. 多环境开发需要设置若干种常用环境,例如开发、生产、测试环境
  2. yaml格式中设置多环境使用---区分环境设置边界
  3. 每种环境的区别在于加载的配置属性不同
  4. 启用某种环境时需要指定启动时使用该环境

8.多环境开发多文件版(yaml版)

application.yml

spring:
  profiles:
    active: test

application-pro.yml

server:
  port: 81

application-dev.yml

server:
  port: 82

application-test.yml

server:
  port: 83

  • 多环境开发配置文件书写技巧(一)
    • 主配置文件中设置公共配置(全局)
    • 环境分类配置文件中常用于设置冲突属性(局部)

小结:

  1. 可以使用独立配置文件定义环境属性
  2. 独立配置文件便于线上系统维护更新并保障系统安全性 

9.多环境开发多文件版(properties版)


10.多环境分组管理

多环境开发独立配置文件书写技巧(二)

  • 根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则如下
    • application-devDB.yml
    • application-devRedis.yml
    • application-devMVC.yml
  • 使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔
     

注意事项

  • 当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效

从Spring2.4版开始使用group属性替代include属性,降低了配置书写量
使用group属性定义多种主环境与子环境的包含关系

 

小结:

  • 多环境开发使用group属性设置配置文件分组,便于线上维护管理

11.多环境开发控制

1.Maven中设置多环境属性

2.SpringBoot中引用Maven属性


 

3.执行Maven打包指令,并在生成的boot打包文件.jar文件中查看对应信息
 

小结:

  1. 当SpringBoot Maven与SpringBoot 使用@..@占位符读取 同时对多环境进行控制时,以 Maven对应的配置属性值 Mavn为主,
  2. 基于SpringBoot读取Maven配置属性的前提下,如果在Idea下测试工程时pom.xml每次更新需要手动compile方可生效

12.日志基础操作 

  • 日志(log)作用
    • 编程期调试代码
    • 运营期记录信息
      • 记录日常运营重要信息(峰值流量、平均响应时长……)
      • 记录应用报错信息(错误堆栈)
      • 记录运维过程数据(扩容、宕机、报警……)
  • 添加日志记录操作

 

  • 日志级别
    • TRACE:运行堆栈信息,使用率低
    • DEBUG:程序员调试代码使用
    • INFO:记录运维过程数据
    • WARN:记录运维过程报警数据
    • ERROR:记录错误堆栈信息
    • FATAL:灾难信息,合并计入ERROR
  • 设置日志输出级别

 

  •  设置日志组,控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别

小结:

  1. 日志用于记录开发调试与运维过程消息
  2. 日志的级别共6种,通常使用4种即可,分别是DEBUG,INFO,WARN,ERROR
  3. 可以通过日志组或代码包的形式进行日志显示级别的控制 

13.快速创建日志对象

Maven中设置多环境属性


 

使用lombok提供的注解@Slf4j简化开发,减少日志对象的声明操作

小结:

  • 基于lombok提供的@Slf4j注解为类快速添加日志对象

14.日志输出格式控制

 

  • PID:进程ID,用于表明当前操作所处的进程,当多服务同时记录日志时,该值可用于协助程序员调试程序
  • 所属类/接口名:当前显示信息为SpringBoot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除

设置日志输出格式

  • %d:日期
  • %m:消息
  • %n:换行

 

小结:

  • 日志输出格式设置规则

 15.文件记录日志

 设置日志文件

日志文件详细配置


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1174335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于AOSP源码Android-10.0.0_r41分支编译,framework开发,修改系统默认字体大小

文章目录 基于AOSP源码Android-10.0.0_r41分支编译,framework开发,修改系统默认字体大小 基于AOSP源码Android-10.0.0_r41分支编译,framework开发,修改系统默认字体大小 主要修改一个地方就行 代码源码路径 frameworks/base/co…

直流无刷电机(BLDC)六步换相驱动

直流无刷电机(BLDC)六步换相驱动 文章目录 直流无刷电机(BLDC)六步换相驱动1. 前言2. 六步换相原理3. 电角度与机械角度4. 动手实践4.1 霍尔输出表测量4.2 换向控制4.3 代码编写 5. 总结 1. 前言 直流无刷电机相对直流有刷电机具…

AOE性能调优问题案例

AOE(Ascend Optimization Engine)是一款自动性能调优工具,目的是为了充分利用有限的硬件资源,满足算子和整网的性能要求。 本期就分享几个关于AOE性能调优问题的典型案例,并给出原因分析及解决方法。 调优过程中进程…

Mysql之多表查询上篇

Mysql之多表查询上篇 多表查询什么是多表查询笛卡尔积(交叉连接)产生笛卡尔积的条件避免笛卡尔积的方法 多表查询的分类1.等值连接 VS 非等值连接等值连接非等值连接扩展1表的别名扩展2:连接多个表 2.自连接与非自连接扩展3:SQL语法标准 内连接SQL92语法…

【大模型应用开发教程】04_大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析

大模型开发整体流程 & 基于个人知识库的问答助手 项目流程架构解析 一、大模型开发整体流程1. 何为大模型开发定义核心点核心能力 2. 大模型开发的整体流程1. 设计2. 架构搭建3. Prompt Engineering4. 验证迭代5. 前后端搭建 二、项目流程简析步骤一:项目规划与…

TensorRT量化实战课YOLOv7量化:YOLOv7-PTQ量化(二)

目录 前言1. YOLOv7-PTQ量化流程2. 模型标定3. 敏感层分析 前言 手写 AI 推出的全新 TensorRT 模型量化实战课程,链接。记录下个人学习笔记,仅供自己参考。 该实战课程主要基于手写 AI 的 Latte 老师所出的 TensorRT下的模型量化,在其课程的基…

el-tree中展示项换行展示

文章目录 效果如下所示:没有换行展示的效果修改样式换行之后的展示效果 想要了解el-tree使用的详情往下看代码和数据如下所示Vue代码中可能使用到的数据如下Vue的代码如下:没有换行展示的效果换行之后的展示效果样式调试 效果如下所示: 没有…

仅以此文,纪念毕业一年后的日子

22年6月份从华农毕业了之后,拿到了好几份不错的offer,最后我进入了我学生时代十分憧憬的一家公司(腾讯)工作,加上实习的时间,已经在腾讯差不多工作了两年了。 从一开始实习的时候的懵懂学生气到现在的清醒…

Azure 机器学习 - 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测

目录 一、环境准备二、下载 ONNX 模型文件2.1 Azure 机器学习工作室2.2 Azure 机器学习 Python SDK2.3 生成模型进行批量评分多类图像分类 三、加载标签和 ONNX 模型文件四、获取 ONNX 模型的预期输入和输出详细信息ONNX 模型的预期输入和输出格式多类图像分类 多类图像分类输入…

【Liunx基础】之指令(一)

【Liunx基础】之指令(一) 1.ls指令2.pwd命令3.cd指令4.touch指令5.mkdir指令(重要)6.rmdir指令与rm指令(重要)7.man指令(重要)8.cp指令(重要) 📃博客主页: 小…

核电堆芯组件动态特性试验研究

u 核电试验概述 反应堆是核电事业的核心组成部分之一,堆内构件、堆芯燃料组件等部件在冷却剂流动冲击下,会诱发剧烈振动,导致堆芯内试验件流道不稳定。为了保障反应堆的安全运行,根据国家核安全法规规定,有必要对受冷…

单链表的应用(2)

环形链表的约瑟夫问题 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少? 利用链表实现 思路&#xff1…

基础Redis-结构与命令

结构与命令 1.基础-Redisa.Redis数据结构介绍b.Redis通用命令c.key的结构d.String类型e.Hash类型f.List类型g.Set类型h.SortedSet类型 1.基础-Redis a.Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样&a…

idea中配置spring boot单项目多端口启动

参照文章 https://zhuanlan.zhihu.com/p/610767685 项目配置如下 下面为 idea 2023,不同版本的设置有区别,但是没那么大,idea 2023默认使用新布局,切换为经典布局即可。 在项目根目录的.idea/workspace.xml文件里添加如下配置 &l…

Java用log4j写日志

日志可以方便追踪和调试问题,以前用log4net写日志,换Java了改用log4j写日志,用法和log4net差不多。 到apache包下载下载log4j的包,解压后把下图两个jar包引入工程 先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参…

测试开发面试宝典,涨价倒计时

大家好,我是洋子,相信在面试软件测试、测试开发岗位的小伙伴都深有体会,考察的知识点越来越多 不仅会考察到软件测试的理论,让你对某种功能进行测试用例的设计,更难一点会给出一个测试场景进行测试方案的设计&#xf…

C++二分算法:平衡子序列的最大和

涉及知识点 二分 动态规划 #题目 给你一个下标从 0 开始的整数数组 nums 。 nums 一个长度为 k 的 子序列 指的是选出 k 个 下标 i0 < i1 < … < ik-1 &#xff0c;如果这个子序列满足以下条件&#xff0c;我们说它是 平衡的 &#xff1a; 对于范围 [1, k - 1] 内的所…

openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略

文章目录 openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略115.1 操作步骤 openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略 115.1 操作步骤 用户密码存储在系统表pg_authid中&#xff0c;为防止用户密码泄露&#xff…

2023-2024-1高级语言程序设计-一维数组

7-1 逆序输出数组元素的值 从键盘输入n个整数存入一维数组中&#xff0c;然后将数组元素的值逆序输出。 输入格式: 第一行输入整数个数n&#xff1b; 第二行输入n 个整数&#xff0c;数据之间以空格隔开。 输出格式: 逆序输出数组元素的值&#xff0c;每个数据之后跟一个空…

[React] React-Redux 快速入门

文章目录 1.安装 Redux Toolkit 和 React Redux2.创建 Redux Store3.为 React 提供 Redux Store​4.创建 Redux State Slice5.添加 Slice Reducers 到 Store6.在 React 组件中使用 Redux State 和 Actions​7.总结 1.安装 Redux Toolkit 和 React Redux npm install reduxjs/t…