大部分的SSH2或SSM的java开发人员习惯在之前的开发框架中直接将应用打包为war形式,而在使用Spring boot框架开发的过程中,默认是将应用发布为jar,但大部分开发者即 希望项目在本地使用Jar调试又可轻松地将应用打为war包在服务容器中发布与测试,特将经验进行一些总结,望能起到作用。
1. IDE:IntelliJ IDEA 2016
2. 新建Spring boot对应的工程,此过程略过,请自行操作
3. 等待下载对应jar包,Make project
4. 修改项目的pom.xml文件,如下所示:
1) 如果在建立工程时使用的是
<packaging>jar</packaging>
请修改为如下方式:jar->war
<packaging>war</packaging>
2) 增加以下的依赖项覆盖默认的内嵌tomcat配置(其他容器配置方式相同,仅jar依赖项不同,请自行尝试)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--本地调试jar时请勿开启,需要打war也无需开启-->
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
3) 添加ServletInitializer类,可与Spring boot启动的main方法所在包同级
代码如下:
package com.test;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import com.test.App;
@SpringBootApplication
@ComponentScan
public class ServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)
{
return builder.sources(App.class);
}
}
4) 使用mvn package命令将工程打为war包,如下图所示:
至此,使用IntelliJ IDEA 2016开发Spring boot项目时,即可在本地进行jar调试,亦可打包war在容器上发布的配置就已经完成。如有更好方式或者方法敬请交流。