将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即 可访问。
1、pom.xml配置修改
<packaging>jar</packaging>
//修改为
<packaging>war</packaging>
2、pom文件添加如些依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
3、排除springboot内置的tomcat干扰
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
说明:为什么要这样排除,就是springboot工程引入spring-boot-starter-web之后,会内嵌一个tomcat,那我们呢就不用这个内嵌tomcat,而是打包成war包后部署到外部的tomcat上
4、改造启动类
@SpringBootApplication
@MapperScan("com.lagou.springboot_01_demo.mapper")
public class Springboot01DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Springboot01DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Springboot01DemoApplication.class);
}
}
说明:启动类在原有基础上 1、extends SpringBootServletInitializer;2、重写configure方法
5、pom文件中不要忘了maven编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
</build>
6、在IDEA中使用mvn clean命令清除旧的包,并使用mvn package生成新的war包
7、使用外部Tomcat运行该 war 文件(把 war 文件直接丢到 tomcat的webapps目录,启动 tomcat)
可以在idea中如下操作:
![](https://img2020.cnblogs.com/blog/1563460/202108/1563460-20210831193522146-81489756.png)
![](https://img2020.cnblogs.com/blog/1563460/202108/1563460-20210831193458151-753823512.png)
![](https://img2020.cnblogs.com/blog/1563460/202108/1563460-20210831193647800-595932522.png)
之后点击启动tomcat即可,然后就可以在浏览器上访问。