Springboot项目部署有两种方式,分别为:打包为jar、war
1)将war包解压,将里面的内容放到服务器项目的目录下;
2)重启服务器;启动tomcat的时间会有些长,约2~3分钟
优点:war包一旦部署成功,如果代码有更改只需替换掉需要更改的代码,不需要再次部署;
缺点:重启了服务器上的tomcat,在你关掉tomcat的一瞬间,这上面部署的所有项目都不能用,如果你的项目启动失败,也会导致tomcat一直处于关机状态,别的项目就会一直无法访问。
1)将打包好的jar包直接放在目录下;
2)cd 你的项目根目录;
3)启动jar包
部署jar包相对于war对其他项目的影响几乎为0,一i那位它只需要部署tomcat,并重启tomcat,因为它自身带有tomcat,所以我们不需要额外部署tomcat,但是我们需要运行jar包,这个项目才算运行起来。
优点:哪怕你的项目到处都是错误,bug,也不会影响到其他项目
缺点:每次修改逻辑代码,都需要重启jar包,重新部署。
实现思路:
在cmd中对应的项目路径下输入mvn install,这样做会在项目的target目录下生成一个jar文件,接着输入java -jar target/springboot-0.0.1-SNAPSHOT.jar,就启动了这个jar,通过这种方式,把此jar上传到服务器并运行,就可以达到部署效果。
右键项目名,菜单中选中show in explorer
找到springboot项目存储地址
切换到命令提示符(注意:要先关闭idea中springboot项目启动,否则会出现8080端口占用的情况)
使用mvn install,在项目对应target目录下,生成一个jar文件
java -jar target/springboot-0.0.1-SNAPSHOT.jar
在浏览器访问
idea中的右上角找到Maven,点击install即可
下面依照方式一运行jar,并在浏览器访问
步骤如下:
1、添加war注解@ServletComponentScan
2、继承SpringBootServletnitializer
3、排除内部tomcat
打包war需要修改Application
新加 @ServletComponentScan注解,并继承SpringBootServletnitializer。
package com.example.springbootdemo1;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* 启动器
*/
@ServletComponentScan
@SpringBootApplication
public class Springbootdemo1Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Springbootdemo1Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
return builder.sources(Springbootdemo1Application.class);
}
}
新加打包成war声明:
war
spring-boot-starter-tomcat修改为provided方式,以避免和独立tomcat容器的冲突
与tomcat相关联的依赖,要进行屏蔽处理,因为war是放到外部tomcat服务器中的。
org.springframework.boot
spring-boot-starter-tomcat
provided
org.apache.maven.plugins
maven-surefire-plugin
true
没有wab.xml打war包会报错,接下来我们来生成web.xml
共性问题:没有webapp文件夹,需要手动创建并设置
如若没有蓝色的标记,需要设置web resource directory
这样就可以出现蓝色图标
可以使用命令在命令提示符中生成,也可以用idea maven组件生成,这楼里采用idea maven生成。
先执行maven clean->maven install
用springbootdemo1-0.0.1-SNAPSHOT.war这个文件名部署,那么访问的时候就要在路径上加上springbootdemo1-0.0.1-SNAPSHOT,名字太长,可以重命名为springdemo1.war然后把文件放进tomcat的webapps目录下。