springboot中是自带Tomcat的所以我们需要将自带的tomcat排除,找到项目的POM文件中的spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件–>-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
然后导入servlet
<dependency>
<!-- 此时运行会报错,把<scope>provided</scope>去掉才能运行)-->
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
最后到springboot启动程序重写configure方法
@SpringBootApplication
@MapperScan("com.xr.run.dao")
public class RunApplication extends SpringBootServletInitializer{
@Resource
private Environment environment;
public static void main(String[] args) {
SpringApplication.run(RunApplication.class, args);
}
private void configureThymeleafStaticVars(ThymeleafViewResolver viewResolver){
if(viewResolver!=null){
Map<String,Object> vars=new HashMap<>();
vars.put("html",environment.getProperty("html"));
vars.put("visitbackstage",environment.getProperty("visitbackstage"));
vars.put("staticfile",environment.getProperty("staticfile"));
viewResolver.setStaticVariables(vars);
}
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(RunApplication.class);
}
最后使用idea配置打包程序
按ctrl+alt+shift+s --->点击左边菜单栏的Artifacts---->删除其中自带的包---->然后添加----->选择web application:exploded---->from moduls---->选择所有项目---->选择WEB-INF右键点击Add copy of ---> Moduls OutPut 选择需要打包的项目--->在点击添加选择web application:Archive选择刚才添加的web application:exploded--->点击应用关闭窗口
现在就可以开始打包了点击idea上面的菜单栏上的build,选择刚才最后打包的Web application:archive