当前位置: 首页 > news >正文

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

相关文章:

SpringBoot项目部署在Windows与Centos上

文章目录 Windows部署一、github上下载文件winsw二、文件目录三、编辑xml文件四、安装服务五、启动服务六、把jar包放到项目外面七、添加限制内存 Linux部署一、准备二、服务三、操作 Windows部署 windows部署服务借鉴于此篇博文 一、github上下载文件winsw 点击链接下载下图…...

网站服务器出错的原因分析和解决方法

​  网站在日常运行的过程中&#xff0c;难免会遇见一些问题&#xff0c;这次我们就来分析关于网站服务器出错、服务器异常的原因以及如何解决网站服务器错误的方法。 如何知道是网站服务器的问题呢? 只要网站不能正常访问运行&#xff0c;那么一定会反馈相关的错误代码和原…...

电影推荐系统】系统初步搭建及离线个性化推荐

上篇博文我们已经写完统计推荐部分&#xff0c;现在我们将使用VueElement-uiSpringBoot来快速搭建系统&#xff0c;展示出电影&#xff0c;并介绍个性化推荐部分。 1 系统页面设计 初步是想设计一个类似豆瓣电影推荐系统 用户登陆后&#xff0c;可以查看高分电影可以查看推荐…...

Redis 集群 (cluster)

是什么 官网&#xff1a;Redis cluster specification | Redis 由于数据量过大&#xff0c;单个Master复制集难以承担&#xff0c;因此需要对多个复制集进行集群&#xff0c;形成水平扩展每个复制集只负责存储整个数据集的一部分&#xff0c;这就是Redis的集群&#xff0c;其作…...

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(19)-Fiddler精选插件扩展安装,将你的Fiddler武装到牙齿

1.简介 Fiddler本身的功能其实也已经很强大了&#xff0c;但是Fiddler官方还有很多其他扩展插件功能&#xff0c;可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了&#xff0c;为了更好的扩展Fiddler&#xff0c…...

解决spring.thymeleaf.cache=false不起作用的问题

目录 spring.thymeleaf.cachefalse不起作用thymeleaf缓存关闭 spring.thymeleaf.cachefalse不起作用 配置是清除缓存&#xff0c;实现热部署。 也就是修改了html后不用重启&#xff0c;刷新页面就能看到效果。 修改完html后一定要ctrlf9重新build一下。 再回到浏览器刷新&…...

企业可以申请DV https证书吗

DV https证书是有基础认证的数字证书&#xff0c;所以DV https证书也可以叫DV基础型https证书。DV基础型https证书是众多https证书中既支持个人&#xff0c;也支持企事业单位申请的https证书&#xff0c;所以企事业单位都可以申请DV基础型https证书&#xff0c;不论是企业门户网…...

记一次phpmyadmin巧妙利用

声明&#xff1a;文中涉及到的技术和工具&#xff0c;仅供学习使用&#xff0c;禁止从事任何非法活动&#xff0c;如因此造成的直接或间接损失&#xff0c;均由使用者自行承担责任。 点点关注不迷路&#xff0c;每周不定时持续分享各种干货。 原文链接&#xff1a;众亦信安&a…...

HTML+CSS+JavaScript:轮播图的自动播放、手动播放、鼠标悬停暂停播放

一、需求 昨天我们做了轮播图的自动播放&#xff0c;即每隔一秒自动切换一次 今天我们增加两个需求&#xff1a; 1、鼠标点击向右按钮&#xff0c;轮播图往后切换一次&#xff1b;鼠标点击向左按钮&#xff0c;轮播图往前切换一次 2、鼠标悬停在轮播图区域中时&#xff0c;…...

微信小程序:生成二维码带参数并获取值

通过后台接口可以获取小程序任意页面的小程序码&#xff0c;需要注意的是接口只能生成已发布的小程序的二维码 小程序接口文档 获取 scene 值 1&#xff09;scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后&#xff0c;开发者可以获取…...

《Java面向对象程序设计》学习笔记——第 3 章 运算符、表达式和语句

专栏&#xff1a;《Java面向对象程序设计》学习笔记...

XML约束和解析

文章目录 概述使用场景语法dtd约束Schema约束解析DOM4j&#xff08;重点&#xff09; 概述 可扩展的标记性语言 使用场景 以前: 传输数据的媒介。 例如&#xff1a;微服务架构中&#xff0c;可以用xml文件进行多语言之间的的联系。 现在: 做配置文件 现在作为传输数据的媒介…...

网络层:IP协议/Mac协议

IP协议 主机: 配有IP地址, 但是不进行路由控制的设备; 路由器: 即配有IP地址, 又能进行路由控制; 节点: 主机和路由器的统 称; IP 目标网络&#xff08;前半部分&#xff09; 目标主机&#xff08;后半部分&#xff09; IP层的核心&#xff1a;IP地址定位主机&#xff08;定…...

让你不在好奇怎么把录音转化成文字更快捷

某天&#xff0c;小琳参加了一场激动人心的讲座&#xff0c;讲座内容非常有价值&#xff0c;但她却发现自己没有时间做详细的笔记。小琳感到非常苦恼&#xff0c;因为她害怕错过任何重要的信息。就在她感到无助的时候&#xff0c;她的好朋友小芳建议她可以借助录音转文字技术来…...

分布式异步任务处理组件(四)

基于zookeeper的HA集群设计思路-- 各个节点都可以消费任务&#xff0c;但是由主节点来投票&#xff1b;主节点通过注册zookeeper的临时节点来选举--主节点需要同步从节点的信息正常工作机制--各个节点&#xff08;包括主节点本身&#xff09;在执行任务之前询问主节点&#xf…...

【C++】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值

[导读]本系列博文内容链接如下&#xff1a; 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动 【C】【C】做一个飞机空战小游戏(三)——模块化程设设计 最近想用c做一个小游戏&#x…...

Spring项目整合策略模式~实战应用

需求背景 1、在管控流程中&#xff0c;涉及到的业务操作很多&#xff0c;不同的业务具有不同的策略实现 举个具体的例子&#xff1a; 在比价管控流程中&#xff0c;有比价策略和管控策略&#xff0c;每个业务的比价和管控均不一样。因此使用策略模式来开发 整体架构流程 1、…...

mybatis PageHelper的坑---记录

记录下&#xff0c;自己新开了一个kotlin的项目从而替换java项目&#xff0c;同时升级了部分组件&#xff0c;包括pageHelper&#xff0c;以往代码里有动态sql的配置 //通过不为null的属性查找数据 val tmpResult: List<Map<String?, Any?>> sqlSessionTemplat…...

uniapp微信小程序下载文件并打开

uni.downloadFile({url: 下载的地址,success(res) {console.log(res)if (res.statusCode 200) {console.log(下载成功);var filePath encodeURI(res.tempFilePath);uni.openDocument({filePath: filePath,fileType: "xlsx",showMenu: true,success: function(res) …...

安卓Intent打开系统进程汇总

1&#xff1a;拨打电话 val uri Uri.parse("tel:10086")val intent Intent(Intent.ACTION_DIAL,uri)startActivity(intent) 2&#xff1a;发送短信 val smsUri Uri.parse("smsto:10086")val intent1 Intent(Intent.ACTION_SENDTO,smsUri)intent1.putE…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...