SpringBoot项目部署在Windows与Centos上

文章目录

  • Windows部署
    • 一、github上下载文件winsw
    • 二、文件目录
    • 三、编辑xml文件
    • 四、安装服务
    • 五、启动服务
    • 六、把jar包放到项目外面
    • 七、添加限制内存
  • Linux部署
    • 一、准备
    • 二、服务
    • 三、操作

Windows部署

windows部署服务借鉴于此篇博文

一、github上下载文件winsw

点击链接下载下图中的两个文件 https://github.com/kohsuke/winsw/releases

在这里插入图片描述

二、文件目录

1、进入jar包所在目录
2、把第一步骤的两个文件移动到jar包所在的目录,jar包名随意,WinSW.NET4.exe和sample-minimal.xml进行重命名,建议设置成一致的。

三、编辑xml文件

<service>
  <!-- ID of the service. It should be unique across the Windows system-->
  <id>agent-vhost</id>
  <!-- Display name of the service -->
  <name>agent-vhost</name>
  <!-- Service description -->
  <description>This service is a service created from a minimal configuration</description>
  <!-- java环境变量,有些电脑不支持中文,可以去除此注释 -->
     <env name="JAVA_HOME" value="%JAVA_HOME%"/>
     <executable>java</executable>
    <arguments>-jar "D:\agent-vhost-windows\target\agent-vhost.jar"</arguments>
     <!-- 开机启动 ,有些电脑不支持中文,可以去除此注释 -->
     <startmode>Automatic</startmode>
</service>

xml文件内有些需要调整
1、<id>标签内是服务名称,<name>标签是显示名称,两者不能和已存在服务重名。
2、<arguments>标签中的jar包地址和名称需要替换成自己的
这样弄完了 到最后服务可能乱码,然后把<arguments>标签中写成:

<arguments>-Dfile.encoding=UTF-8 -jar "D:\agent-vhost-windows\target\agent-vhost.jar"</arguments>

四、安装服务

在exe所在目录执行cmd 然后再再命令提示框里面输入 xxx.exe install 命令
如需卸载服务: 在命令提示框里输入 xxx.exe uninstall
(命令中的xxx.exe,是下载下来的exe文件重命名后的文件名)

五、启动服务

在服务中找到自己安装的服务,右键启动。

六、把jar包放到项目外面

1、详情请看 https://www.cnblogs.com/xiaoqi/p/6955288.html
2、建议使用自定义配置文件,把配置文件放到哪里都不碍事,只需修改第三步骤就好。
3、修改第三步骤中的arguments 标签就可以了,主要就是添加项目访问配置文件路径。

<arguments>-Dfile.encoding=UTF-8 -jar -Dspring.config.location=D:\config\config.properties "D:\agent-vhost-windows\target\agent-vhost.jar"</arguments>

七、添加限制内存

1、详情请看 https://www.jianshu.com/p/de0c4118f2ce
2、修改第三步骤中的arguments 标签就可以了(添加-Xms512m -Xmx512m 限制内存521M)

<arguments>-Dfile.encoding=UTF-8 -Xms512m -Xmx512m -jar -Dspring.config.location=D:\config\config.properties "D:\agent-vhost-windows\target\agent-vhost.jar"</arguments>

Linux部署

Linux部署服务借鉴于此篇博文

一、准备

项目开发工具为 idea,采用 Maven 构建。
SpringBoot 包含一个 Maven 插件,它可以将项目打包成一个可执行 jar

二、服务

新建 systemd 服务文件
进入服务文件存放目录:cd /etc/systemd/system
新建服务文件:vi serviceName.service,内容如下:

[Unit]
Description=serviceName
After=syslog.target        //不可动

[Service]
Type=simple              //不可动
ExecStart=/usr/java/jdk1.8.0_121/bin/java -Xmx512M -Xms512M -jar /home/service/serviceName.jar --server.port=8080

[Install]
WantedBy=multi-user.target             //不可动

注:Description 和 ExecStart 根据自己项目修改。上述注释记得删除
-Xss:规定了每个线程虚拟机栈及堆栈的大小,一般情况下,256k是足够的,此配置将会影响此进程中并发线程数的大小。
-Xms:表示初始化JAVA堆的大小及该进程刚创建出来的时候,他的专属JAVA堆的大小,一旦对象容量超过了JAVA堆的初始容量,JAVA堆将会自动扩容到-Xmx大小。
-Xmx:表示java堆可以扩展到的最大值,在很多情况下,通常将-Xms和-Xmx设置成一样的,因为当堆不够用而发生扩容时,会发生内存抖动影响程序运行时的稳定性。

三、操作

启动服务:systemctl start serviceName
停止服务:systemctl stop serviceName
服务状态:systemctl status serviceName
项目日志:journalctl -u serviceName
开机启动:systemctl enable serviceName

注:上述命令中 serviceName 也可写为 serviceName.service

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows切换php版本以及composer

前提 安装php8.2 安装Php7.4 下载 nts是非线程安全的&#xff0c;这里选择线程安全的&#xff0c;选择64位 解压缩 修改系统环境变量 修改为php-7的 cmd中输入php -v查看 找到composer存放路径C:\ProgramData\ComposerSetup\bin 将三个文件复制到php目录下 重启电脑…

【云原生】Docker容器命令监控+Prometheus监控平台

目录 1.常用命令监控 docker ps docker top docker stats 2.weave scope 1.下载 2.安装 3.访问查询即可 3.Prometheus监控平台 1.部署数据收集器cadvisor 2.部署Prometheus 3.部署可视化平台Gragana 4.进入后台控制台 1.常用命令监控 docker ps [rootlocalhost ~…

GitHub Copilot:让开发编程变得像说话一样简单

引用&#xff1a; 人类天生就梦想、创造、创新。但今天&#xff0c;我们花太多时间被繁重的工作所消耗&#xff0c;花在消耗我们时间、创造力和精力的任务上。为了重新连接我们工作的灵魂&#xff0c;我们不仅需要一种更好的方式来做同样的事情&#xff0c;更需要一种全新的工…

Linux下CMake开发

CMake编译和运行C文件 编写CMakeLists.txt # 声明要求的 cmake 最低版本 cmake_minimum_required( VERSION 3.1 )# 声明一个 cmake 工程 project( pro )# 设置编译模式 set( CMAKE_BUILD_TYPE "Release" )#添加OPENCV库 #指定OpenCV版本&#xff0c;代码如下 #find…

笔记20230727

1. http2.0&#xff0c;概念就不说了&#xff0c;查看是否使用&#xff1a;network调试&#xff0c;查看请求的header-view source&#xff0c;可以查看http版本&#xff1b;后端&#xff0c;如nginx&#xff0c;配置&#xff0c;http2表示开启。后端开启、浏览器支持&#xff…

PHP8的注释-PHP8知识详解

欢迎你来到PHP服务网&#xff0c;学习《PHP8知识详解》系列教程&#xff0c;本文学习的是《PHP8的注释》。 什么是注释&#xff1f; 注释是在程序代码中添加的文本&#xff0c;用于解释和说明代码的功能、逻辑或其他相关信息。注释通常不会被编译器或解释器处理&#xff0c;而…

《TCP IP网络编程》第十一章

第 11 章 进程间通信 11.1 进程间通信的基本概念 通过管道实现进程间通信&#xff1a; 进程间通信&#xff0c;意味着两个不同的进程中可以交换数据。下图是基于管道&#xff08;PIPE&#xff09;的进程间通信的模型&#xff1a; 可以看出&#xff0c;为了完成进程间通信&…

Redis 笔记,基本数据类型、持久化、主从、集群等等问题

标题 &#x1f600;&#x1f600;&#x1f600;创作不易&#xff0c;各位看官点赞收藏. 文章目录 标题Redis 基础笔记1、安装及环境搭建2、Redis 数据类型2.1、String2.2、List2.3、Hash2.4、Set2.5、Zset2.6、BitMap2.7、HyperLogLog2.8、Geospatial2.9、Stream 3、Redis 持久…

C++之普通函数指针/类成员函数指针/lambda回调函数总结(一百六十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Go 语言入门指南:基础语法和常用特性解析

文章目录 Hello,World变量、指针及赋值变量和常量指针赋值 选择和循环选择循环 基本数据类型整型整型的取值范围 运算符二元运算符一元运算符 浮点型复数和布尔类型 字符串runeUnicode和UTF-8按字节访问按字符rune访问特点 数组数组的定义1. 使用默认初始值2. 定义并初始化3. 省…

13.4.2 【Linux】sudo

相对于 su 需要了解新切换的使用者密码 &#xff08;常常是需要 root 的密码&#xff09;&#xff0c; sudo 的执行则仅需要自己的密码即可。sudo 可以让你以其他用户的身份执行指令 &#xff08;通常是使用 root 的身份来执行指令&#xff09;&#xff0c;因此并非所有人都能够…

Verilog语法学习——LV1_四选一多路器

LV1_四选一多路器 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 制作一个四选一的多路选择器&#xff0c;要求输出定义上为线网类型 状态转换&#xff1a;…

将Parasoft和ChatGPT相结合会如何?

ChatGPT是2023年最热门的话题之一&#xff0c;是OpenAI训练的语言模型。它能够理解和生成自然语言文本&#xff0c;并接受过大量数据的训练&#xff0c;包括用各种编程语言编写的许多开源项目的源代码。 软件开发人员可以利用大量的知识库来协助他们的工作&#xff0c;因为它具…

迁移学习、微调、计算机视觉理论(第十一次组会ppt)

@TOC 数据增广 迁移学习 微调 目标检测和边界框 区域卷积神经网络R—CNN

Kafka-配置Kerberos安全认证(JDK8、JDK11)

一、相关配置 1、JAAS 配置文件 KafkaClient {com.sun.security.auth.module.Krb5LoginModule requireduseKeyTabtruestoreKeytrueserviceName"kafka"keyTab"D:/code/demo/conf/kafka.service.keytab"principal"kafka/hdp-1"; }; 2、keytab 文…

3d软件动物生活习性仿真互动教学有哪些优势

软体动物是一类广泛存在于海洋和淡水环境中的生物&#xff0c;其独特的形态和生活习性给学生带来了新奇和有趣的学习主题&#xff0c;为了方便相关专业学科日常授课教学&#xff0c;web3d开发公司深圳华锐视点基于真实的软体动物&#xff0c;制作软体动物3D虚拟展示系统&#x…

在CSDN学Golang云原生(Kubernetes声明式资源管理Kustomize)

一&#xff0c;生成资源 在 Kubernetes 中&#xff0c;我们可以通过 YAML 或 JSON 文件来定义和创建各种资源对象&#xff0c;例如 Pod、Service、Deployment 等。下面是一个简单的 YAML 文件示例&#xff0c;用于创建一个 Nginx Pod&#xff1a; apiVersion: v1 kind: Pod m…

瓦瑟斯坦距离、收缩映射和现代RL理论

Wasserstein Distance, Contraction Mapping, and Modern RL Theory | by Kowshik chilamkurthy | Medium 一、说明 数学家们在考虑一些应用的情况下探索的概念和关系 - 几十年后成为他们最初从未想象过的问题的意想不到的解决方案。 黎曼的几何学只是出于纯粹的原因才被发现的…

动静态网页、Django创建表关系、Django框架的请求生命周期流程图

一、request对象的几个方法 在视图函数中写方法的时候&#xff0c;都会有一个形参requestdef index(request):passrequest.method # GET POST request.GET.get() # 它获取最后一个元素值 request.GET.getlist() # 获取到所有的request.POST.get() # 它获取最后一个元素值 req…

哈工大计算机网络课程局域网详解之:无线局域网

哈工大计算机网络课程局域网详解之&#xff1a;无线局域网 文章目录 哈工大计算机网络课程局域网详解之&#xff1a;无线局域网IEEE 802.11无线局域网802.11体系结构802.11&#xff1a;信道与AP关联 本节介绍一下平时经常使用的一个无线局域网技术&#xff0c;也就是通常我们使…