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部署方法的更多相关文章

  1. spring boot: GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获

    spring boot: GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获 当你的某个控制器内的某个方法报错,基本上回显示出java错误代码,非常不友好,这 ...

  2. spring boot 部署为jar

    前言 一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目.想来放到prod上面也应该很简单.然而今天试了下,各种问 ...

  3. Spring Boot 部署与服务配置

    Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项 ...

  4. 十六、Spring Boot 部署与服务配置

    spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动.其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat).当然你也可以将项 ...

  5. spring boot部署系统--morphling简介

    Morphling 简介 Morphling是一套基于Spring Boot 1.5开发的部署系统,依赖简单,一套Mysql即可运行,操作简单明了,适用于百台规模几下机器的运维操作 功能概述 系统部署 ...

  6. spring boot 部署

    指定运行的内存 java -Xms10m -Xmx200m -jar xxx.jar spring boot 打包成war包: 让 SpringbootApplication 类继承 SpringBo ...

  7. spring boot 部署 发布

    Spring Boot应用的打包和部署 字数639 阅读2308 评论0 喜欢5 现在的IT开发,DevOps渐渐获得技术管理人员支持.云计算从ECS转向Docker容器技术.微服务的概念和讨论也越来 ...

  8. 27. Spring Boot 部署与服务配置

    转自“https://www.cnblogs.com/zhchoutai/p/7127598.html” Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函 ...

  9. Spring Boot 部署浅析(jar or war)

    对于传统的 ssm 或者 ssh 项目的部署,一般会打包成war包,或者是一个编译好的文件夹,再放到 tomcat 的 webapps 目录下,如果是 war 包,会自动解压出来.而 Spring B ...

随机推荐

  1. React项目中使用less/scss&全局样式/变量

    使用create-react-app脚手架搭建初始化项目 > npm install -g create-react-app > npx create-react-app my-app c ...

  2. AtCoder ABC 242 题解

    AtCoder ABC 242 题解 A T-shirt 排名前 \(A\) 可得 T-shirt 排名 \([A+1,B]\) 中随机选 \(C\) 个得 T-shirt 给出排名 \(X\) ,求 ...

  3. 【Java面试】请你简单说一下Mysql的事务隔离级别

    一个工作了6年的粉丝,去阿里面试,在第一面的时候被问到"Mysql的事务隔离级别". 他竟然没有回答上来,一直在私信向我诉苦. 我说,你只能怪年轻时候的你,那个时候不够努力导致现在 ...

  4. iPhone x 的区别

    最近入手两台iPhone x, 均从官网购买,两台分别是2017年和2018年生产,对比了一下,两台还有是一些差别: 首先苹果X使用起来还是非常爽的,没有HOME键,明显比按HOME键方便,因为按HO ...

  5. [自制操作系统] 第05回 CPU的三种模式

    目录 一.前景回顾 二.实模式和保护模式 一.前景回顾 在之前我们说到,loader的作用才是读取加载操作系统内核,那么我们的重心就应该是loader.S文件,其实我们接下来也的确是会往loader. ...

  6. WinSCP和PuTTY的安装和使用

    简介 WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议.它的主要功能就是在本地与远程计算机间安全的复制文件. 安装 1.下载地址:https://www. ...

  7. 嵌入式中 动态阿拉伯语字符串 转换 LCD显示字符串【感谢建国雄心】

    本文参考CSDBN:建国雄心 的博客,这里找不到该帖子,放一个类似的仅供参考https://blog.csdn.net/qiaojiongzeng6321/article/details/748572 ...

  8. LVGL库入门教程 - 动画

    动画可以说是 LVGL 中的特色之一,不过在使用动画前,请确保单片机具有足够的性能来维持足够的帧率. transition:过渡动画 当一个控件的状态发生改变时,可以让样式也发生变化以提醒用户.通过过 ...

  9. Vmware虚拟机硬件兼容性

    All virtual machines have a hardware version. The hardware version indicates which virtual hardware ...

  10. who is the next one?

    Turn-Taking:  参加会话的人参加整个会话的过程中轮流说话,end-of-utterance detection systems,是对说话转变的预测,既什么时候发生对话者之间的转变. Eva ...