SpringBoot2概览-运维实用篇

news2024/11/15 12:31:15

知识点


  • 使用SpringBoot提供的maven插件可以将工程打包成可执行jar包然后执行,即java –jar xxx.jar,下面的图是MANIFEST.MF文件的内容:
    在这里插入图片描述
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  • 命令行启动常见问题及解决方案(针对Windows系统):
# 查询端口
netstat -ano
# 查询指定端口
netstat -ano |findstr "端口号"
# 根据进程PID查询进程名称
tasklist |findstr "进程PID号"
# 根据PID杀死任务
taskkill /F /PID "进程PID号"
# 根据进程名称杀死任务
taskkill -f -t -im "进程名称"
  • Linux系统中启动SpringBoot项目:
nohup java -jar xxx.jar > xxx/xxx.log 2>&1 # 在后台启动SpringBoot项目并且将输出的日志记录在log文件中
ps -ef | grep ""java -jar"  # 找到启动程序的pid
kill -9 xxx  # 根据pid终止SpringBoot项目
  • SpringBoot中4级配置文件:
    • 1级(级别最高,运维经理进行线上整体项目部署方案的调控):file:config/application.yml,即项目jar包所在路径下创建一个config目录,其中的yml文件
    • 2级:file:application.yml,即项目jar包所在路径下的yml文件
    • 3级(项目经理进行整体项目属性的调控):classpath:config/application.yml,即当前下项目的resources目录下创建一个config目录,其中的yml文件
    • 3级:classpath:application.yml,即当前下项目的resources目录下的yml文件
  • 在命令行中可以设置SpringBoot的配置文件路径,不过在SpringCloud中就使用过配置中心进行设定,动态加载配置信息:
--spring.config.location=classpath:/xxx.yml
  • 假设根据功能对application-dev.yml配置文件(该文件还是保留了)中的信息进行拆分,并制作成独立的三个配置文件application-devDB.ymlapplication-devRedis.ymlapplication-devMVC.yml,要对多个环境进行加载使其生效:
# application-xxx.yml是命名规则
# 未使用group属性,优先级为devDB<devRedis<devMVC<dev
Spring:
  profiles:
    active: dev  # application-dev.yml也会生效,该文件中的优先级大于include中的
    include: devDB,devRedis,devMVC  # 这三个文件都会生效,越往后的文件优先级越高
    
# 使用group属性,优先级为dev<devDB<devRedis<devMVC
Spring:
  profiles:
    active: dev  # application-dev.yml也会生效,该文件中的小于dev中的三个
    group:
      "dev": devDB,devRedis,devMVC  # 这三个文件生效,越往后的文件优先级越高
	  "pro": proDB,proRedis,proMVC
	  "test": testDB,testRedis,testMVC
  • MavenSpringBoot同时对多环境进行控制时,以Maven为主(通过修改pom文件进行环境的切换),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>
spring:
  profiles:
    active: @profile.active@  # 此时运行dev中的
  • 日志级别(启动项目后控制台不会输出DEBUG级别的具体日志信息是因为默认输出INFO及以上级别的,而DEBUG级别低于INFO):
    • TRACE:运行堆栈信息,使用率低
    • DEBUG:程序员调试代码使用
    • INFO:记录运维过程数据
    • WARN:记录运维过程报警数据
    • ERROR:记录错误堆栈信息
    • FATAL:灾难信息,合并计入ERROR
  • 设置日志输出级别和日志组(日志组即控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别):
# 1.设置日志输出级别
# 开启debug模式,输出调试信息,常用于检查系统运行状况
debug: true
# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
  level:
    root: debug
-------------------------------------------------
# 2.设置日志组
logging:
  group:
    # 自定义组名,设置当前组中所包含的包
    ebank: com.psj.controller
  level:
    root: warn
    # 为对应组设置日志级别
    ebank: debug
    # 为对包设置日志级别
    # com.psj.controller: debug
  • 日志输出格式如下图,要控制输出格式可以进行以下配置:
    在这里插入图片描述
logging:
  pattern:
    console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"  # %d表示日期,%m表示信息
  • 日志文件详细配置:
logging:
  file:
    name: server.log
  logback:
    rollingpolicy:
      max-file-size: 3KB
      file-name-pattern: server.%d{yyyy-MM-dd}.%i.log

注意事项


  • 在打包过程中会执行测试,如果写了测试代码就会执行代码,所以需要通过设置跳过测试步骤再打包

资料

视频参考黑马程序员SpringBoot2全套视频教程 P54-P69


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

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

相关文章

【MySQL】如何速通MySQL(3)

&#x1f4cc;前言&#xff1a;本篇博客介绍如何速通MySQL的第二篇&#xff0c;主要介绍Mysql中主要的基础的入门&#xff0c;学习MySQL之前要先安装好MySQL&#xff0c;如果还没有安装的小伙伴可以看看博主前面的博客&#xff0c;里面有详细的安装教程。或者看一下下面这个链接…

136-nago

PEID查看你程序有没有壳&#xff0c;发现是汇编语言程序 打开程序&#xff0c;我们发现程序是由Nag提示窗口的。 我们先进行去Nag提示。 进入回调函数&#xff0c;进行分析 保存修改到文件。 重新打开文件&#xff0c;我们发现没有Nag窗口。 再次使用OD进行附加进行分析。…

项目中遇到的问题总结(四)

GateWay和Nginx的相同点和不同点在哪里&#xff1f; Gateway 和 Nginx 都是常见的反向代理服务器&#xff0c;它们的相同点和不同点如下&#xff1a; 相同点&#xff1a; 都可以作为反向代理服务器&#xff0c;接收来自客户端的请求并转发到后端服务器进行处理。 都支持负载均…

67、C#调用Visual Studio 2019生成的Paddle+OCR(使用ncnn库),去完成业务任务

基本思想&#xff1a;这里使用飞哥写的android代码&#xff0c;将其取出纯c代码逻辑&#xff0c;自己尝试转了paddleocr模型&#xff0c;可以成功转换&#xff0c;不在详细阐述生成ncnn模型的过程和写后处理ocr识别过程&#xff0c;这里要实现的目的是使用c#调用ncnn的ocr工程&…

Ps修改文字

第一步&#xff1a;打开ps软件&#xff0c;选择菜单栏“文件”中的“打开”选项。 第二步&#xff1a;在弹出的“打开”对话框中&#xff0c;选择一张需要修改文字的图片&#xff0c;单击“打开”按钮。 第三步&#xff1a;在左侧工具栏中&#xff0c;选择“仿制图章工具”。 第…

【Python 随练】输出 9*9 口诀

题目&#xff1a; 输出 9*9 口诀 简介&#xff1a; 在本篇博客中&#xff0c;我们将使用 Python 代码输出 9*9 口诀表。口诀表是一个常见的数学乘法表格&#xff0c;用于展示从 1 到 9 的乘法结果。我们将给出问题的解析&#xff0c;并提供一个完整的代码示例来生成这个口诀…

全志V3S嵌入式驱动开发(USB camera驱动)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 soc和mcu的一个重要区别&#xff0c;就是soc会涉及到大量的音视频操作&#xff0c;当然音视频也就包括了camera摄像头这部分。v3s本身支持csi接口和…

webpack优化代码运行之Code split

一、 什么是code split Webpack的code split是一种技术&#xff0c;它能够将代码分割成多个块&#xff0c;从而优化应用程序的性能。这样做可以实现按需加载和并行加载&#xff0c;从而减少初始化时间和请求次数。Code split在Webpack中通过使用entry语法和各种Loader和插件来…

享元模式:减少内存占用的诀窍

一&#xff0c;概要 享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;它主要通过共享对象来降低系统中对象的数量&#xff0c;从而减少内存占用和提高程序性能。这听起来有点像单例模式&#xff0c;但它们在实现和用途上有很大的区别。享元…

JavaScript Day01 初识JavaScript

文章目录 1.初识JavaScript1.1.什么是JavaScript1.2.JavaScript的组成部分1.3.JavaScript的历史-JavaScript发展历史-系统环境-编辑器-运行环境-调试&#xff1a; 2. js组成2.1 ECMAScrpt 【js标准】&#xff08;兼容性100%&#xff09; (类似于CoreJava&#xff0c;制定了基础…

【备战秋招】每日一题:2023.05-B卷-华为OD机试 - 阿里巴巴找黄金宝箱(III)

为了更好的阅读体检&#xff0c;可以查看我的算法学习博客阿里巴巴找黄金宝箱(III) 题目描述 贫如洗的樵夫阿里巴巴在去砍柴的路上&#xff0c;无意中发现了强盗集团的藏宝地&#xff0c;藏宝地有编号从0-N的箱子&#xff0c;每个箱子上面贴有一个数字。 阿里巴巴念出一个咒…

SpringMVC 学习整理

文章目录 一、SpringMVC 简介1.1 什么是MVC1.2 什么是Spring MVC1.3 Spring MVC的特点 二、SpringMVC 快速入门三、RequestMapping注解说明四、SpringMVC获取请求参数4.1 通过ServletAPI获取请求参数4.2 通过控制器方法的形参获取请求参数4.3 通过RequestParam接收请求参数4.4 …

Elasticsearch:实用 BM25 - 第 3 部分:在 Elasticsearch 中选择 b 和 k1 的注意事项

这是系列文章的第三篇文章。之前的文章是&#xff1a; Elasticsearch&#xff1a;实用 BM25 - 第 1 部分&#xff1a;分片如何影响 Elasticsearch 中的相关性评分 Elasticsearch&#xff1a;实用 BM25 - 第 2 部分&#xff1a;BM25 算法及其变量 选择 b 和 k1 值得注意的是&…

【备战秋招】每日一题:2023.05-B卷-华为OD机试 - 比赛的冠亚季军

为了更好的阅读体检&#xff0c;可以查看我的算法学习博客比赛的冠亚季军 题目描述 有个运动员&#xff0c;他们的id为0到N-1,他们的实力由一组整数表示。他们之间进行比赛&#xff0c;需要决出冠亚军。比赛的规则是0号和1号比赛&#xff0c;2号和3号比赛&#xff0c;以此类推…

014、数据库管理之配置管理

配置管理 TiDB配置系统配置集群配置配置的存储位置区分TiDB的系统参数和集群参数 系统参数系统参数的作用域系统参数的修改 集群参数集群参数的修改配置参数的查看 实验一&#xff1a; 在不同作用域下对数据库的系统参数进行修改session级别global级别 实验二&#xff1a; 修改…

Redis入门(二)

3.7 Redis 默认16个库 1&#xff09;Redis默认创建16个库,每个库对应一个下标,从0开始. 通过客户端连接后默认进入到0 号库&#xff0c;推荐只使用0号库. 127.0.0.1:6379> 16个是因为配置文件中是这样的 [aahadoop102 redis]$ vim redis.conf 2&#xff09;使用命令 sele…

DataX和SQLServer的导入导出案例

DataX和SQLServer的导入导出案例 文章目录 DataX和SQLServer的导入导出案例写在前面SQLServer数据库的简单使用SQLServer数据库一些常用的Shell脚本命令创建数据库 DataX 导入导出案例创建表并插入数据读取 SQLServer 的数据导入到 HDFS读取 SQLServer 的数据导入 MySQL 总结 写…

【C++Coppeliasim】UR机械臂位置正逆解Coppeliasim集成测试

前言&#xff1a; 基于改进的 Denavit-Hartenberg 参数的UR机械臂正向运动学求解和基于几何分析的逆运动学求解。该代码在 C 和 MATLAB 中可用&#xff0c;两者都与 CoppeliaSim 集成。 该解决方案是使用 Microsoft Visual Studio 2022 和 C 20 标准构建的。 依赖&#xff1a; …

C++ 类继承

目录 类继承基类派生一个类构造函数访问权限派生类与基类之间的特殊关系 完整demo 类继承 基类 #ifndef __TEST_1_H_ #define __TEST_1_H_ #include <iostream> #include<string> using namespace std; typedef unsigned int uint;//father class class TableTen…

《编译原理》2022年期末试卷

北京信息科技大学《编译原理》2022年期末考试 试卷附录