springboot部署项目有两种:
1、使用内置tomcat,打成jar包,发布到线上即可。
2、使用外置tomcat,打成war包,线上需要另外tomcat把war包放在tomcat目录下才能运行
一、使用springboot内置tomcat,打成jar包
1、tomcat是一个免费的、开放源码的Web应用服务器,作为中小型系统和并发访问用户不是很多的场合下被普遍使用。springboot默认使用tomcat作为内嵌的servlet容器。查看spring-boot-starter-web依赖可知
如果想使用其他容器,比如Jetty作为Springboot默认内置容器,只需要修改****spring-boot-starter-web依赖即可,具体修改如下
2、由于maven打jar包,总是运行junit test这是因为spring-boot-maven-plugin插件已经集成了maven-surefire-plugin插件会自动运行junit test,只需要在pom.xml里增加
<properties>
<java.version>1.8</java.version>
<!-- maven打jar包,跳过junit test测试 -->
<skipTests>true</skipTests>
</properties>
3、使用maven管理,运行packsge,打成jar包
4、运行jar包,进入cmd,运行java -jar + jar包名
5、在浏览器输入网址,即可访问项目
二、使用springboot配置外置tomcat
1、排除内置 Tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.2.6.RELEASE</version>
<!--<scope>compile</scope>-->
<scope>provided</scope>
</dependency>
2、将打包方式更改为 war
<packaging>war</packaging>
3、修改启动类(使启动类继承 SpringBootServletInitializer 类,并覆盖 configure 方法)
/**
* SpringBoot入口类
*/
@EnableRetry
@ServletComponentScan
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoApplication.class);
}
}
4、添加依赖、由于 SpringBootServletInitializer 类需要用到 servlet-api 的相关 jar 包,所以需要添加依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
5、配置项目打包路径
6、安装tomcat,并在idea中新增tomcat配置
7、正常启动tomcat,就能通过网址访问了。如果要打war,直接用package