我们都知道,spring boot工程一般都打包成jar包的形式进行发布。
java -jar demo.jar //IDEA中使用该命令进行打包
但是spring boot中内置的tomcat在每次程序启动的时候相当于一个新的tomcat,在项目有上传文件共能的时候将文件保存在tomcat中的话,每次重启的时候文件都会丢失。这个时候我们就需要将项目打包成war包进行外部tomcat的发布。
第一步
在pom.xml文件中添加下面的依赖:
<!--因配置外部TOMCAT 而配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
同时,将pom.xml文件首部的jar改成war
<groupId>cn.demo</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<!--<packaging>jar</packaging>-->
最后,将启动类从
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
修改为
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
注意:该类继承了SpringBootServletInitializer并且重写了configure方法,这是关键所在。
最后在IDEA右侧的Maven栏中双击package等待Build Success即可,然后将项目中target中的war包放入tomcat中输入:http://localhost:[端口号]/[打包项目名]/
完成!!谢谢观赏。