SpringBoot Windows 自启动 - 通过 Windows Service 服务实现

springboot,windows,自启动,通过,service,服务,实现 · 浏览次数 : 675

小编点评

**Windows 服务中无法访问挂载目录的解决方法:** 1. **检查挂载路径:**确保挂载目录的路径正确,并且有可访问权限。 2. **检查服务启动设置:**确保服务启动选项中包含“自动启动”选项。 3. **修改 Java 运行参数:**确保 Java 运行参数正确设置,包括 `-jar` 参数中的服务名称。 4. **设置日志配置:**确保日志路径和日志模式设置正确。 5. **使用 Windows 服务脚本或 Powershell:**创建一个启动服务脚本或 PowerShell脚本,并将其运行以启动 Spring Boot 项目。 6. **使用其他方法:**尝试使用其他方法,例如设置系统变量 `JAVA_HOME` 或使用 `sc` 命令运行服务。 **注意:** * 在使用任何方法之前,请确保您已安装了 Spring Boot 项目所需的所有依赖项。 * 确保您的系统满足 Windows 服务的硬件和软件需求。 * 如果您无法解决问题,请参考 Spring Boot 项目的官方文档或寻求技术支持。

正文

Windows Service 服务中,不能访问挂载目录(网络映射盘)

SpringBoot 在Windows运行时,有个黑窗体,容易被不小心选中或关闭,或者服务器重启后,不能自动运行,注册为 Windows Service服务 可实现 SpringBoot 项目在Windows 中随系统自启动。也不用担心被关闭

下载 WinSW

https://github.com/winsw/winsw/releases

image

创建运行目录

创建目录,将有关文件放入目录下,
将 WinSW-x64.exe 重命名为 自己的服务名,如 his-service.exe
如下图:
image
his-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<service>
  <!-- 服务ID Windows 服务唯一标识 -->
  <id>his-service</id>
  <!-- 服务名称 -->
  <name>his-service</name>
  <!-- 服务描述 -->
  <description>HIS 接口同步服务</description>
  <!-- jar包运行参数,如果没设JAVA_HOME,指定运行程序的jdk位置 C:\Program Files\Java\jdk1.8.0_251\bin\java.exe-->
  <executable>java</executable>
  <!-- -jar之后是jar包名称 -->
  <arguments>  -Xms1024m -Xmx2048m -Dfile.encoding=utf-8  -Dloader.path=D:\HisApi-lib -jar his-service.jar  --server.port=22586 --spring.profiles.active=dev </arguments>
  <!-- 日志配置 -->
  <logpath>D:\HIS\logs</logpath>
  <!-- 日志模式,默认为append追加模型,rotate为旋转模式-->
  <logmode>rotate</logmode>
</service>
  • executable:启动可执行文件的全路径,如果配置环境变量,则可以简写,所有这里填写Java
  • arguments:命令执行的参数
  • logpath:配置日志路径
  • logmode:日志输出模式,默认为append,官方文档
  • append:(追加模式,其特点是将日志文件全部输出在一个文件中,这个文件可能会越来越大。
  • rotate:(旋转模式,推荐)当日志文件大小达到10兆(默认值),winsw会将日志重新输出到另外一份日志文件,最多保留8个(默认值)。
  • reset:(重置模式)每次重启服务都会重置日志文件。
  • none:(忽略模式)几乎不会生成日志文件。

安装服务

CMD(管理员模式)
D:\HIS>his-service.exe install
D:\HIS>services.msc 安装成功后到 服务中,找到对应的服务,右击启动
image

更新服务

  • 停止服务
  • 替换目录下的jar文件
  • 启动服务

删除服务

D:\HIS>sc delete his-service

注意

his-service 替换成自己的应用服务名


同类产品有:NSSM 使用介绍:
NSSM 将.NetCore 做成 Windows 服务 - JAVA 同理
NSSM 将jar包安装为windows服务-bat启动方式

感谢,@yi念之间 提供 NSSM 信息

与SpringBoot Windows 自启动 - 通过 Windows Service 服务实现相似的内容:

SpringBoot Windows 自启动 - 通过 Windows Service 服务实现

将.NetCore 做成 Windows 服务 - JAVA 同理 、将jar包安装为windows服务-bat启动方式 将 SpringBoot 注册为 Windows Service服务 可实现 SpringBoot 项目在Windows 中随系统自启动。也不用担心被识关闭

Springboot+actuator+prometheus+Grafana集成

# 本次示例以Windows示例 推荐到官网去下载:Windows版的应用程序 > 下载最新版 prometheus-2.37.8.windows-amd64 压缩包:解压就行 ![image](https://img2023.cnblogs.com/blog/2105060/202306/2105

windows下使用dockerdesktop进行部署

Docker部署springboot项目 环境准备 要在windows上使用docker需要确认系统的需求 需要启用虚拟化支持的CPU 启用适用于windows的Linux子系统功能 保证足够的内存 下载dockerdesktop 下载后会提示安装对应的环境 坑点 安装过程中需要安装wsl环境,会遇

Gavvmal

Gavvmal springboot 官方文档说明了两种方式,一种使用插件,直接生成docker镜像,但是这需要本地安装docker环境,但是无论用windows还是mac,本地安装docker都感觉不好,太占用资源。 第二种方法,安装Gavvmal,下载相应版本的压缩包,可以把这个压缩版看做一个J

SpringBoot实战:轻松实现接口数据脱敏

引言 在现代的互联网应用中,数据安全和隐私保护变得越来越重要。尤其是在接口返回数据时,如何有效地对敏感数据进行脱敏处理,是每个开发者都需要关注的问题。本文将通过一个简单的Spring Boot项目,介绍如何实现接口数据脱敏。 一、接口数据脱敏概述 1.1 接口数据脱敏的定义 接口数据脱敏是指在接口返

SpringBoot彩蛋之定制启动画面

写在前面 在日常开发中,我们经常会看到各种各样的启动画面。例如以下几种 ① spring项目启动画面 ② mybatisplus启动画面 ③若依项目启动画面 还有很多各式各样好看的启动画面,那么怎么定制这些启动画面呢? 一、小试牛刀 ① 新建一个SpringBoot项目 ②在项目的resources

Springboot中自定义监听器

一、监听器模式图 二、监听器三要素 广播器:用来发布事件 事件:需要被传播的消息 监听器:一个对象对一个事件的发生做出反应,这个对象就是事件监听器 三、监听器的实现方式 1、实现自定义事件 自定义事件需要继承ApplicationEvent类,并添加一个构造函数,用于接收事件源对象。 该事件中添加了

网易面试:SpringBoot如何开启虚拟线程?

虚拟线程(Virtual Thread)也称协程或纤程,是一种轻量级的线程实现,与传统的线程以及操作系统级别的线程(也称为平台线程)相比,它的创建开销更小、资源利用率更高,是 Java 并发编程领域的一项重要创新。 PS:虚拟线程正式发布于 Java 长期支持版(Long Term Suort,LT

京东面试:SpringBoot同时可以处理多少请求?

Spring Boot 作为 Java 开发中必备的框架,它为开发者提供了高效且易用的开发工具,所以和它相关的面试题自然也很重要,咱们今天就来看这道经典的面试题:SpringBoot同时可以处理多少个请求 ? 准确的来说,Spring Boot 同时可以处理多少个请求,并不取决于 Spring Bo

美团二面:SpringBoot读取配置优先级顺序是什么?

理解并合理运用Spring Boot配置加载的优先级,对于保障应用的安全性、可维护性以及降低部署复杂度至关重要。特别是在大规模微服务架构中,合理的配置管理和迁移对于整体系统的稳定性有着不可忽视的作用。