Spring Boot部署方法
Spring Boot部署方法
网上搜到的部署方法无非是打成jar包,然后shell执行nohup java调用jar命令,或者是打成war包然后部署到tomcat或者jetty容器上面。
Spring Boot已经内置tomcat或者jetty,还需要部署单独的web容器实在是不方便,使用nohup命令配置又不灵活。官方提供了一种非常简
便的做法,将Spring Boot工程打包成‘fully executable’的jar包运行。具体做法如下:
- 修改构建参数
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable> <!-- 新增配置 -->
</configuration>
</plugin>
- 打包
```shell
> mvn clean package
```
上传打包完成的jar包到服务器。
- 设置init.d服务
假定jar包放在linux服务器的/var/tutorial目录下,文件名为tutorial-0.0.1-SNAPSHOT.jar,需要生成一个指向/etc/init.d目录的软
链接。
```shell
> sudo ln -s /var/tutorial/tutorial-0.0.1-SNAPSHOT.jar /etc/init.d/tutorial
```
- 添加配置文件
在/var/tutorial目录下设置与jar同名的conf文件,用于设置Java启动项目的运行参数,示例这里简单配下JVM的参数即可,其他参
数参考官方文档说明: [deployment-script-customization](https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-script-customization-when-it-runs)。conf文件内容如下:
```shell
JAVA_OPTS="-Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+HeapDumpOnOutOfMemoryError"
```
注:conf文件放在与jar包相同目录下,名字也必须相同,否则会读取不到配置,本例中应为/var/tutorial/tutorial-0.0.1-SNAPSHOT.conf。
- 启动项目
直接使用init.d相关命令service start、stop、restart等。然后最好检查一下日志文件,示例默认是/var/log/tutorial.log,确认是否
有错误日志或者启动异常即可。
```shell
> service tutorial start
Started [12351]
```
- 其他
本文只是一个最简单的示例,正式部署还需要考虑运行权限、开机启动以及配置参数自定义等其他需求,这些还请参考官方文档说
明: [deployment-install](https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment-install)
Spring Boot部署方法的更多相关文章
- spring boot: GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获
spring boot: GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获 当你的某个控制器内的某个方法报错,基本上回显示出java错误代码,非常不友好,这 ...
- spring boot 部署为jar
前言 一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目.想来放到prod上面也应该很简单.然而今天试了下,各种问 ...
- Spring Boot 部署与服务配置
Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项 ...
- 十六、Spring Boot 部署与服务配置
spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项 ...
- spring boot部署系统--morphling简介
Morphling 简介 Morphling是一套基于Spring Boot 1.5开发的部署系统,依赖简单,一套Mysql即可运行,操作简单明了,适用于百台规模几下机器的运维操作 功能概述 系统部署 ...
- spring boot 部署
指定运行的内存 java -Xms10m -Xmx200m -jar xxx.jar spring boot 打包成war包: 让 SpringbootApplication 类继承 SpringBo ...
- spring boot 部署 发布
Spring Boot应用的打包和部署 字数639 阅读2308 评论0 喜欢5 现在的IT开发,DevOps渐渐获得技术管理人员支持.云计算从ECS转向Docker容器技术.微服务的概念和讨论也越来 ...
- 27. Spring Boot 部署与服务配置
转自“https://www.cnblogs.com/zhchoutai/p/7127598.html” Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函 ...
- Spring Boot 部署浅析(jar or war)
对于传统的 ssm 或者 ssh 项目的部署,一般会打包成war包,或者是一个编译好的文件夹,再放到 tomcat 的 webapps 目录下,如果是 war 包,会自动解压出来.而 Spring B ...
随机推荐
- CF1665A GCD vs LCM
- Eclipse历史版本下载和选择对应的java版本
下载Eclipse 官网: https://www.eclipse.org/ 直达 直接进入连接:https://www.eclipse.org/downloads/packages/installe ...
- Spring jdbctemplate和事务管理器
内部bean 对象结构: @Autowiredprivate IAccountService accountService; @Service("accountService")@ ...
- [LINUX] 像电影里的黑客一样用 terminal 作为日常开发
目录 1.效果预览 2.具体实现 2.1 定位鼠标位置 2.2 获取屏幕位置 2.3 计算鼠标在哪个窗口 2.4 1920x1080 平铺效果设计 2.5 1280x1024 平铺效果设计 3 代码 ...
- Lua5.4源码剖析:二. 详解String数据结构及操作算法
概述 lua字符串通过操作算法和内存管理,有以下优点: 节省内存. 字符串比较效率高.(比较哈希值) 问题: 相同的字符串共享同一份内存么? 相同的长字符串一定不共享同一份内存么? lua字符串如何管 ...
- Unsupervised Person Re-identification by Soft Multilabel Learning
简介: 这是一篇19年CVPR的跨域无监督Re-ID论文,在Market1501和DukeMTMC-reID上分别达到了67.7%和67.1%的rank-1精度,算是一篇将准确度刷得比较高的论文了,在 ...
- Linux操作系统(3):crond 任务调度
crontab 进行 定时任务的设置.概述: 任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: 1.系统工作:有些重要的工作必须周而复始地执行.如病毒扫描等 2.个别用户工作:个别 ...
- 【python】M3U8下载器脚本
[python]M3U8下载器脚本 脚本目标: 1. 输入M3U8文件的链接,得到视频 2.使用异步操作,这样可以快很多,不加锁,因为懒得写,而且影响不大 已知条件: 1.m3u8文件其实就是一个记录 ...
- 攻防世界MISC进阶区--39、40、47
39.MISCall 得到无类型文件,010 Editor打开,文件头是BZH,该后缀为zip,打开,得到无类型文件,再改后缀为zip,得到一个git一个flag.txt 将git拖入kali中,在g ...
- 5-9 Leaf 分布式ID
Leaf 什么Leaf leaf是叶子的意思 我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统 我们可以在Github网站上下载项目直接使用 为什么需要Leaf 上面的图片中 是一个 ...