SpringBoot 项目开发完毕后,支持两种方式部署到服务器
- jar 包 (官方推荐)
- war 包
# jar
创建一个 SpringBoot 工程
创建 UserController 类返回一个访问成功的提示信息
测试访问是否有问题:
没有问题后 进行 打包
查看打包后的目录,复制路径然后打开资源管理器地址栏中输入复制的路径访问
就可以看到打包成功后的 jar 包了
在当前的目录中打开 powerShell 然后输入命令: java -jar .\springboot-deploy-0.0.1-SNAPSHOT.jar
然后访问路径
# war
将项目的打包方式改为 war 包的方式
编写 SpringBoot 的启动类
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; | |
@SpringBootApplication | |
public class SpringbootDeployApplication extends SpringBootServletInitializer { | |
public static void main(String[] args) { | |
SpringApplication.run(SpringbootDeployApplication.class, args); | |
} | |
@Override | |
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { | |
return builder.sources(SpringbootDeployApplication.class); | |
} | |
} |
点击 maven 的打包按钮进行打包为 war 包
打包完成后查看目录的打包情况
将 springboot 的 war 包放入到 tomcat 的 webapps 目录下
启动 tomcat
bin\startup.bat 双击运行
当我们再次访问 localhost:8080/user/findAll 时就会报 404 的,因为此时的虚拟目标发生了变化了。
虚拟目录为 springboot-deploy-0.0.1-SNAPSHOT
访问 localhost:8080/springboot-deploy-0.0.1-SNAPSHOT/user/findAll
还有第二个问题就是,更改端口号在项目中的 resource 中修改不起作用,因为这里对 SpringBoot 内置的 tomcat 的端口号的修改,而我们启动 SpringBoot 项目使用的是我们自己下载的外部的 tomcat,需要在外部的 tomcat 中进行配置才行。