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

目录:

  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.mzph.cn/news/131293.shtml

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

相关文章

难题来了:分库分表后,查询太慢了,如何优化?

说在前面: 尼恩社群中,很多小伙伴反馈, Sharding-JDBC 分页查询的速度超级慢, 怎么处理? 反馈这个问题的小伙伴,很多很多。 而且这个问题,也是面试的核心难题。前段时间,有小伙伴…

windows 用vs创建cmake工程并编译opencv应用项目生成exe流程简述

目录 前言一、安装opencv(1)下载(2)双击安装(3)环境变量和system文件夹设置 二、打开vs创建项目三、编辑cpp,.h,cmakelist.txt文件(1)h文件(2&…

【Python从入门到进阶】41、有关requests代理的使用

接上篇《40、requests的基本使用》 上一篇我们介绍了requests库的基本使用,本篇我们来学习requests的代理。 一、引言 在网络爬虫和数据抓取的过程中,我们经常需要发送HTTP请求来获取网页内容或与远程服务器进行通信。然而,在某些情况下&…

通过在Z平面放置零极点的来设计数字滤波器

文章来源地址:https://www.yii666.com/blog/393376.html 通过在Z平面放置零极点的来设计数字滤波器 要求:设计一款高通滤波器,用在音频信号处理过程中,滤掉100Hz以下的信号。 实现方法:通过在Z平面放置零极点的来设…

数据结构与算法【02】—线性表

CSDN系列专栏:数据结构与算法专栏 针对以前写的数据结构与算法系列重写(针对文字描述、图片、错误修复),改动会比较大,一直到更新完为止 前言 通过前面数据结构与算法基础知识我们知道了数据结构的一些概念和重要性,那么本章总结…

【UE 材质】简单的闪闪发光材质

效果 节点 参考视频: https://www.bilibili.com/video/BV1uK411y737/?vd_source36a3e35639c44bb339f59760641390a8

MySQL(8):聚合函数

聚合函数介绍 聚合函数: 对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。 聚合函数类型:AVG(),SUM(),MAX(),MIN(),COUNT() AVG / SUM 只适用于数值类型的字段(或变量) SELECT AVG(…

【LeetCode】每日一题 2023_11_4 数组中两个数的最大异或值

文章目录 刷题前唠嗑题目:数组中两个数的最大异或值题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode? 启动!!! 题目:数组中两个数的最大异或值 题目链接:421. 数组中两个数的最大异或值 题目描述 代…

前端埋点方式

前言: 想要了解用户在系统中所做的操作,从而得出用户在本系统中最常用的模块、在系统中停留的时间。对于了解用户的行为、分析用户的需求有很大的帮助,想实现这种需求可以通过前端埋点的方式。 埋点方式: 1.什么是埋点&#xff1f…

基于Jenkins实现接口自动化持续集成,学完涨薪5k

一、JOB项目配置 1、添加描述 可选选项可填可不填 2、限制项目的运行节点 节点中要有运行环境所需的配置 节点配置教程:https://blog.csdn.net/YZL40514131/article/details/131504280 3、源码管理 需要将脚本推送到远程仓库中 4、构建触发器 可以选择定时构建…

【python】路径管理+路径拼接问题

路径管理 问题相对路径问题绝对路径问题 解决os库pathlib库最终解决 问题 环境:python3.7.16 win10 相对路径问题 因为python的执行特殊性,使用相对路径时,在不同路径下用python指令会有不同的索引效果(python的项目根目录根据执…

Temp directory ‘C:\WINDOWS\TEMP‘ does not exist

问题描述 解决方法 管理员权限问题,进入temp文件夹更改访问权限即可。 点击 temp文件夹 属性 -> 安全 -> 高级 -> 更改主体Users权限 给读取和写入权限 参考博客 开发springboot项目时无法启动Temp directory ‘C: \WINDOWS\TEMP‘ does not exist

Python库学习(十二):数据分析Pandas[下篇]

接着上篇《Python库学习(十一):数据分析Pandas[上篇]》,继续学习Pandas 1.数据过滤 在数据处理中,我们经常会对数据进行过滤,为此Pandas中提供mask()和where()两个函数; mask(): 在 满足条件的情况下替换数据,而不满足条件的部分…

leetcode-经典面/笔试题目

1.消失的数字 面试题 17.04. 消失的数字 - 力扣(LeetCode)https://leetcode.cn/problems/missing-number-lcci/ 这个题目当然有好几种解法,这里我推荐一种比较优秀的思路,也就是单身狗思路:异或。 异或的特点是相异…

账户权限控制

1.首先配置一个单群组4节点的链 1.1创建操作目录 cd ~ && mkdir -p fisco && cd fisco 1.2下载国内脚本 curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.9.1/build_chain.sh && chmod ux bu…

【KVM】软件虚拟化和硬件虚拟化类型

前言 大家好,我是秋意零。 今天介绍的内容是虚拟化技术以及软件虚拟化和硬件虚拟化。 👿 简介 🏠 个人主页: 秋意零🔥 账号:全平台同名, 秋意零 账号创作者、 云社区 创建者🧑 个…

系统提示缺少或找不到d3dcompiler_43.dll文件的详细修复教程

今天我来给大家分享一下关于d3dcompiler_43.dll缺失的4个修复方法。 首先,我们来了解一下d3dcompiler_43.dll的作用。它是DirectX中的一个组件,用于编译Shader和Pixel着色器代码。如果缺少了这个文件,就会导致游戏或应用程序无法正常运行。 …

全能数据分析软件 Tableau Desktop 2019 mac中文版功能亮点

Tableau Desktop 2019 mac是一款专业的全能数据分析工具,可以让用户将海量数据导入并记性汇总,并且支持多种数据类型,比如像是编程常用的键值对、哈希MAP、JSON类型数据等,因此用户可以将很多常用数据库文件直接导入Tableau Deskt…

适合新手自学的网络安全基础技能“蓝宝书”:《CTF那些事儿》

文章目录 内容简介读者对象专家推荐目录赠书活动 CTF比赛是快速提升网络安全实战技能的重要途径,已成为各个行业选拔网络安全人才的通用方法。但是,本书作者在从事CTF培训的过程中,发现存在几个突出的问题: 线下CTF比赛培训中存在…

力扣:149. 直线上最多的点数(Python3)

题目: 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客挚爱…