1. 概述
之前一篇文章《springboot+mybatis入门》讲述了如何利用IDEA快速搭建一个访问数据库的springboot项目,在运行时由于springboot内嵌了tomcat,可以通过jar包方式直接运行(建立在平常的开发中使用较为便捷的jar包直接运行的方式)。 但是在通常的项目中,JAVA web工程项目都是以war包形式部署到tomcat的webapps目录下。 下面介绍一下如何将springboot项目打成war包。
2. 打包部署
2.1 修改pom.xml配置文件
将jar打包方式修改为war。
<groupId>com.windyman</groupId>
<artifactId>learnspringboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
增加tomcat的依赖(如果是jar直接运行下面这个记得去除)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
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>
2.2 在LearnspringbootApplication.java同目录下添加启动初始化类
package com.windyman;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer; //
public class LearnSpringbootServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(LearnspringbootApplication.class);
}
}
2.3 生成war包
在IDEA下点击build -> build Artifacts 然后就会在targets目录下生成对应的war包,将war包部署到tomcat的webapp下重启即可。
访问http://localhost:8080/learnspringboot-0.0.1-SNAPSHOT/userinfo?id=1 返回数据。
问题:
1. 在最初将war包部署到webapps目录下访问会出现404,经排查后发现是在IDEA里面的jdk版本(1.8)和tomcat环境的jdk版本(1.7)不一致导致,切换为一致后,重启tomcat访问就OK 了。