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 点击链接下载下图…...

网站服务器出错的原因分析和解决方法
网站在日常运行的过程中,难免会遇见一些问题,这次我们就来分析关于网站服务器出错、服务器异常的原因以及如何解决网站服务器错误的方法。 如何知道是网站服务器的问题呢? 只要网站不能正常访问运行,那么一定会反馈相关的错误代码和原…...
电影推荐系统】系统初步搭建及离线个性化推荐
上篇博文我们已经写完统计推荐部分,现在我们将使用VueElement-uiSpringBoot来快速搭建系统,展示出电影,并介绍个性化推荐部分。 1 系统页面设计 初步是想设计一个类似豆瓣电影推荐系统 用户登陆后,可以查看高分电影可以查看推荐…...

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

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(19)-Fiddler精选插件扩展安装,将你的Fiddler武装到牙齿
1.简介 Fiddler本身的功能其实也已经很强大了,但是Fiddler官方还有很多其他扩展插件功能,可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了,为了更好的扩展Fiddler,…...
解决spring.thymeleaf.cache=false不起作用的问题
目录 spring.thymeleaf.cachefalse不起作用thymeleaf缓存关闭 spring.thymeleaf.cachefalse不起作用 配置是清除缓存,实现热部署。 也就是修改了html后不用重启,刷新页面就能看到效果。 修改完html后一定要ctrlf9重新build一下。 再回到浏览器刷新&…...

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

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

HTML+CSS+JavaScript:轮播图的自动播放、手动播放、鼠标悬停暂停播放
一、需求 昨天我们做了轮播图的自动播放,即每隔一秒自动切换一次 今天我们增加两个需求: 1、鼠标点击向右按钮,轮播图往后切换一次;鼠标点击向左按钮,轮播图往前切换一次 2、鼠标悬停在轮播图区域中时,…...
微信小程序:生成二维码带参数并获取值
通过后台接口可以获取小程序任意页面的小程序码,需要注意的是接口只能生成已发布的小程序的二维码 小程序接口文档 获取 scene 值 1)scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后,开发者可以获取…...

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

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

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

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

分布式异步任务处理组件(四)
基于zookeeper的HA集群设计思路-- 各个节点都可以消费任务,但是由主节点来投票;主节点通过注册zookeeper的临时节点来选举--主节点需要同步从节点的信息正常工作机制--各个节点(包括主节点本身)在执行任务之前询问主节点…...

【C++】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值
[导读]本系列博文内容链接如下: 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动 【C】【C】做一个飞机空战小游戏(三)——模块化程设设计 最近想用c做一个小游戏&#x…...
Spring项目整合策略模式~实战应用
需求背景 1、在管控流程中,涉及到的业务操作很多,不同的业务具有不同的策略实现 举个具体的例子: 在比价管控流程中,有比价策略和管控策略,每个业务的比价和管控均不一样。因此使用策略模式来开发 整体架构流程 1、…...
mybatis PageHelper的坑---记录
记录下,自己新开了一个kotlin的项目从而替换java项目,同时升级了部分组件,包括pageHelper,以往代码里有动态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:拨打电话 val uri Uri.parse("tel:10086")val intent Intent(Intent.ACTION_DIAL,uri)startActivity(intent) 2:发送短信 val smsUri Uri.parse("smsto:10086")val intent1 Intent(Intent.ACTION_SENDTO,smsUri)intent1.putE…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...