博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot 项目部署到服务器 两种方式
阅读量:3713 次
发布时间:2019-05-21

本文共 3819 字,大约阅读时间需要 12 分钟。

Spring Boot 两种部署到服务器的方式


jar包(官方推荐)

jar包方式启动,也就是使用spring boot内置的tomcat运行。服务器上面只要你配置了jdk1.8及以上,就ok。不需要外置tomcat

1.打成jar包

2.将jar包放到任意目录,执行下面的命令

$ nohup java -jar test.jar >temp.txt &//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。

这里写图片描述

ps:Linux jar包运行命令详细说明,请查看这篇博客:
3.阿里云服务器需要放开对应的端口
添加安全组:我的项目中配置的启动端口是18080,故这里需要放开18080端口,才能访问
这里写图片描述

4.访问swagger

访问格式:服务器ip:启动端口/swagger-ui.html
如:http://59.110.155.32:18080/swagger-ui.html
这里写图片描述
我的项目配置:
这里写图片描述

=======================

我们再看看进程:
执行jps,如下图,我们可以看到jar 进程有两个,原因是我这里使用java -jar 启动了两个项目。
这里写图片描述

war包

传统的部署方式:将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即可访问。

开发环境:jdk1.8 + IDEA

下面搭建一个demo演示如何打war包部署并且如何访问:spring boot + maven,(下面我讲的有点啰嗦,用了很多截图,主要目的是照顾跟我一样的小白同学~~愿世界和平!)

1.新建spring boot + maven 项目(简单贴两张图)
这里写图片描述
这里写图片描述
这里我们默认打成jar包,不用修改。

2.项目新建完成后,修改启动Application文件继承SpringBootServletInitializer,实现configure方法

这里写图片描述

package com.example.demo1;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class Demo1Application extends SpringBootServletInitializer {
// 用来测试访问 @RequestMapping("/") public String home() { return "hello 朋友"; } public static void main(String[] args) { SpringApplication.run(Demo1Application.class, args); } // 继承SpringBootServletInitializer 实现configure 方便打war 外部服务器部署。 @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Demo1Application.class); }}

3.修改pom.xml

war

完整pom.xml代码如下

4.0.0
com.example
demo1
0.0.1-SNAPSHOT
war
demo1
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-jdbc
org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-starter-test
test
demo1
org.springframework.boot
spring-boot-maven-plugin

4.打包

这里可以直接到项目根目录下面:运行 maven package命令,打包。
我这里直接使用idea打包,如下图:
这里写图片描述

5.将war放入外部tomcat的webapps目录下

这里写图片描述

6.启动tomcat

这里写图片描述

会弹出一个黑框,你会看到项目启动,启动完成后,直接访问:localhost:8080/demo1(即:ip:端口/项目名称,这里的端口是外部tomcat配置的端口,项目名称是war包得名称),浏览器输出“hello 朋友”,表示运行成功!

这里写图片描述

一定注意 :我这里访问的端口是8080,也就是外部tomcat设置的端口。而不是项目,

application.yml中配置的server.port。

小结

1.对比两种打包方式,jar更加简单,方便。具体使用哪种方式,应视应用场景而定。

2.再说一次,将项目打成war包,部署到外部的tomcat中,这个时候,不能直接访问spring boot 项目中配置文件配置的端口。application.yml中配置的server.port配置的是spring boot内置的tomcat的端口号, 打成war包部署在独立的tomcat上之后, 你配置的server.port是不起作用的。一定要注意这一点!!
其实我们从tomcat的启动界面,已经可以看出,是启动的哪个端口:
这里写图片描述
很明显,日志告诉我们,我们应该访问8080端口。
下图是使用spring boot 内置tomcat启动日志,可以看出配置的server.port是生效了的!
这里写图片描述

3.ok,如果你用的spring boot + gradle。基本一样。。这里就不详细说了

你可能感兴趣的文章
c语言获取本地时间
查看>>
ubuntu中openwrt编译环境的搭建
查看>>
从字符串中获取指定字符串之间字符串
查看>>
16进制字符串转字节
查看>>
http //t cn/xx 等链接的生成与还原
查看>>
PyCharm 设置运行参数
查看>>
vs 外部依赖项 附加依赖项以及如何添加依赖项目
查看>>
TensorFlow 辨异 —— tf placeholder 与 tf Variable
查看>>
Python debug —— invalid literal for int with base 10
查看>>
matplotlib tricks(关闭坐标刻度 坐标轴不可见)
查看>>
9. Linux系统日志管理
查看>>
17. Linux系统的ftp服务
查看>>
Python 之 高级变量类型
查看>>
Python 综合应用 —— 名片管理系统
查看>>
Python 之 变量进阶(理解)
查看>>
Python 之 函数进阶
查看>>
面向对象(OOP)基本概念及基本语法
查看>>
Python之 面向对象封装案例
查看>>
Python之面向对象 私有属性和私有方法
查看>>
Python之 类属性和类方法
查看>>