SpringBoot运维

SpringBoot程序的打包与运行

  1. SpringBoot工程可以基于java环境下独立运行jar文件启动服务

  2. SpringBoot工程执行mvn命令package进行打包

  3. 执行jar命令:java --jar 工程名.jar

spring-boot-maven-plugin

`spring-boot-maven-plugin` 是 Spring Boot 提供的 Maven 插件,用于将当前的 Spring Boot 项目打包成一个可以独立运行的可执行 JAR 文件。通过该插件,可以方便地将项目打包成一个包含所有依赖的可执行 JAR 文件,使得应用程序可以在没有额外依赖的情况下独立运行。

通常,在 Maven 项目的 `pom.xml` 文件中配置 `spring-boot-maven-plugin`,并使用 `mvn package` 命令来执行打包操作。一旦打包完成,就可以通过命令行或者双击 JAR 文件来运行 Spring Boot 应用程序。

命令行启动常见问题及解决方案

查询端口

netstat -ano

查询指定端口

netstat -ano |findstr "端口号"

根据进程PID查询进程名称

tasklist |findstr "进程PID号"

根据PID杀死任务

taskkill /F /PID "进程PID号"

根据进程名称杀死任务

taskkill -f -t -im "进程名称"

配置高级

在使用 jar 命令启动 Spring Boot 项目时如何使用临时属性替换配置文件中的属性:

  1. 临时属性的加载优先级高:
  • 在启动 Spring Boot 项目时,临时属性的加载优先级要高于配置文件中的属性,可以通过临时属性来替换配置文件中的属性。
  1. 添加临时属性的方式:
  • 使用 `java -jar your-application.jar --property=value` 的格式来添加临时属性。这样可以在启动时指定特定的属性值。
  1. 多个临时属性之间的分隔:
  • 多个临时属性之间使用空格分隔,可以一次性指定多个属性的值。
  1. 有效性限制:
  • 临时属性必须是当前 Spring Boot 项目支持的属性,否则设置将无效。确保设置的临时属性在项目中是有效的配置属性。

通过这种方式,可以在启动 Spring Boot 项目时动态地指定一些属性的值,而不需要修改配置文件。这为在不同环境下灵活配置应用程序提供了便利,同时也保留了配置文件的设置。

配置文件在不同层级下的作用和优先级规则:

  1. 配置文件分为四种不同层级:
  • 项目类路径配置文件:服务于开发人员本机开发与测试,通常包含开发环境相关的配置信息。

  • 项目类路径 `config` 目录中的配置文件:服务于项目经理整体调控,用于项目管理和配置。

  • 工程路径配置文件:服务于运维人员配置涉密线上环境,包含线上环境相关的配置信息。

  • 工程路径 `config` 目录中的配置文件:服务于运维经理整体调控,用于整体配置管理。

2. 多层级配置文件间的属性叠加并覆盖:

  • 不同层级的配置文件中的属性会按照叠加并覆盖的规则作用于程序。具体来说,高优先级的配置文件中的属性会覆盖低优先级配置文件中相同属性的取值,从而实现了不同层级配置的优先级管理。

通过这种多层级配置文件的设置,可以满足不同角色和环境的需求,同时确保配置信息的安全性和管理性。在实际应用中,合理配置不同层级的配置文件可以提高程序的灵活性和可维护性。

日志

日志在软件开发和系统运维中起着至关重要的作用,主要包括以下方面:

  1. **编程期调试代码**:在开发阶段,通过记录调试信息、变量状态、程序流程等,帮助开发人员发现和解决代码中的问题和bug,提高代码质量。

  2. **运营期记录信息**:在应用程序运行时,记录关键信息、操作日志、事件发生情况等,帮助运维人员监控系统运行状态,查看实时数据,及时发现和解决问题。

  3. **记录日常运营重要信息**:记录重要指标如峰值流量、平均响应时长、用户行为等数据,帮助业务分析和优化系统性能,支持决策制定和业务发展。

  4. **记录应用报错信息**:记录应用程序在运行过程中发生的错误、异常信息和错误堆栈,帮助开发人员快速定位问题、分析原因并进行修复,提高系统稳定性和可靠性。

  5. **记录运维过程数据**:记录运维过程中的关键事件和数据,如扩容、宕机、报警信息等,帮助运维人员了解系统运行状况、维护历史记录,以便进行故障排查和系统优化。

通过合理使用日志记录,开发人员和运维人员可以更好地监控和管理系统运行,提高系统的可靠性、稳定性和性能,为用户提供更好的体验和服务。因此,日志记录是软件开发和系统运维中不可或缺的重要组成部分。

相关推荐
程序猿阿伟5 分钟前
《C++中的魔法:实现类似 Python 的装饰器模式》
java·c++·装饰器模式
Mr. zhihao7 分钟前
装饰器模式详解:动态扩展对象功能的优雅解决方案
java·开发语言·装饰器模式
wclass-zhengge11 分钟前
SpringBoot篇(运维实用篇 - 临时属性)
运维·spring boot·后端
2401_8576009513 分钟前
商场应急管理:SpringBoot技术解决方案
java·spring boot·后端
想做白天梦25 分钟前
多级反馈队列
java·windows·算法
潇雷27 分钟前
算法Day12|226-翻转二叉树;101-对称二叉树;104-二叉树最大深度;111-二叉树最小深度
java·算法·leetcode
一颗甜苞谷34 分钟前
开源一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单的源码
java·开源
半夏之沫36 分钟前
✨最新金九银十✨大厂后端面经✨
java·后端·面试
计算机学姐1 小时前
基于uniapp微信小程序的餐厅预约点餐系统
java·spring boot·微信小程序·小程序·java-ee·uni-app·tomcat