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

目录:

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

1.工程打包与运行

程序为什么要打包?

[黑马程序员SpringBoot2]——运维实用篇_第1张图片

SpringBoot项目快速启动(Windows版)

[黑马程序员SpringBoot2]——运维实用篇_第2张图片

注意事项

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

[黑马程序员SpringBoot2]——运维实用篇_第3张图片 

小结:

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

 

2.打包插件 

SpringBoot项目快速启动

[黑马程序员SpringBoot2]——运维实用篇_第4张图片

SpringBoot打包插件

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

[黑马程序员SpringBoot2]——运维实用篇_第5张图片 

 可执行jar包目录结构

[黑马程序员SpringBoot2]——运维实用篇_第6张图片

jar包描述文件(MANIFEST.MF)

  • 普通工程

[黑马程序员SpringBoot2]——运维实用篇_第7张图片 

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

[黑马程序员SpringBoot2]——运维实用篇_第8张图片 

  •  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

[黑马程序员SpringBoot2]——运维实用篇_第9张图片
 

小结:

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

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

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

 [黑马程序员SpringBoot2]——运维实用篇_第10张图片

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

[黑马程序员SpringBoot2]——运维实用篇_第11张图片

  •  不携带参数启动SpringBoot程序

[黑马程序员SpringBoot2]——运维实用篇_第12张图片 

小结:

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

[黑马程序员SpringBoot2]——运维实用篇_第13张图片 

 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目录中配置文件:服务于运维经理整体调控
  • 多层级配置文件间的属性采用叠加并覆盖的形式作用于程序 

 

[黑马程序员SpringBoot2]——运维实用篇_第14张图片 

6.自定义配置文件 

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

[黑马程序员SpringBoot2]——运维实用篇_第15张图片 

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

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

[黑马程序员SpringBoot2]——运维实用篇_第16张图片 

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

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

[黑马程序员SpringBoot2]——运维实用篇_第17张图片
 

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

 

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

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

小结:

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

 

 7.多环境开发(yaml版)

多环境

 [黑马程序员SpringBoot2]——运维实用篇_第18张图片

 

 多环境开发(YAML版)

[黑马程序员SpringBoot2]——运维实用篇_第19张图片

 [黑马程序员SpringBoot2]——运维实用篇_第20张图片

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

[黑马程序员SpringBoot2]——运维实用篇_第21张图片

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

小结:

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

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


[黑马程序员SpringBoot2]——运维实用篇_第22张图片

10.多环境分组管理

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

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

[黑马程序员SpringBoot2]——运维实用篇_第23张图片

注意事项

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

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

[黑马程序员SpringBoot2]——运维实用篇_第24张图片 

小结:

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

11.多环境开发控制

1.Maven中设置多环境属性

[黑马程序员SpringBoot2]——运维实用篇_第25张图片

2.SpringBoot中引用Maven属性

[黑马程序员SpringBoot2]——运维实用篇_第26张图片
 

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

小结:

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

12.日志基础操作 

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

[黑马程序员SpringBoot2]——运维实用篇_第27张图片 

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

[黑马程序员SpringBoot2]——运维实用篇_第28张图片 

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

[黑马程序员SpringBoot2]——运维实用篇_第29张图片

小结:

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

13.快速创建日志对象

Maven中设置多环境属性

[黑马程序员SpringBoot2]——运维实用篇_第30张图片
 

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

[黑马程序员SpringBoot2]——运维实用篇_第31张图片

小结:

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

14.日志输出格式控制

 [黑马程序员SpringBoot2]——运维实用篇_第32张图片

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

设置日志输出格式

[黑马程序员SpringBoot2]——运维实用篇_第33张图片

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

 

小结:

  • 日志输出格式设置规则

 15.文件记录日志

 设置日志文件

[黑马程序员SpringBoot2]——运维实用篇_第34张图片

日志文件详细配置

[黑马程序员SpringBoot2]——运维实用篇_第35张图片
 

你可能感兴趣的:(#,JavaEE,运维)