【小QのSpringBoot】打包可部署的War包
2016-09-08 10:26
645 查看
背景
工程结构
配置POM文件
创建Spring Boot启动类
创建Spring Boot的Servlet初始化器
创建测试用Controller
特别提示
代码下载地址
开发环境
本文根据Spring Boot官方指导文档,实现为Tomcat打包War包,并在外部Tomcat中成功运行。
tomcat7.0以上版本支持Servlet 3.0。
Spring Boot也可以添加web.xml配置文件以便在Servlet 3.0之前的容器中运行,官方指导文档中没有给出web.xml具体的配置方法,此处待后续实现后补充。
Servlet 3.0之前版本War包的一般结构如下
JDK 1.8.0_11
Maven 3.2.1
Eclipse 4.4.2
Tomcat 7.0.42
工程结构
配置POM文件
创建Spring Boot启动类
创建Spring Boot的Servlet初始化器
创建测试用Controller
特别提示
代码下载地址
开发环境
背景
Spring Boot可以很方便地通过可运行Jar包的形式,在Spring Boot内嵌容器中运行Web应用,但在生产部署过程中,往往需要将Web应用部署在外部的容器中。为此,需要将Spring Boot的Web应用打包为War包进行部署。本文根据Spring Boot官方指导文档,实现为Tomcat打包War包,并在外部Tomcat中成功运行。
工程结构
配置POM文件
在Web应用基础上增加如下配置<!-- 声明Maven打包为War包 --> <packaging>war</packaging> <dependencies> <!-- 引入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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- 部署用需做此配置 --> <!-- 这样在打包时会剔除容器中已经包含的包,避免包冲突 --> <scope>provided</scope> </dependency> </dependencies>
创建Spring Boot启动类
Spring Boot启动类保持不变package com.q.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @ClassName: MySpringBootApplication * @Description: SpringBoot主入口 * @author: ZQ * @date: 2016年9月5日 下午1:48:00 */ //@PropertySource(value = { "WEB-INF/custom.properties" }) @SpringBootApplication //SpringBoot入口,与以下组合等效 //@Configuration -- 注明为配置类 //@EnableAutoConfiguration -- 开启自动配置 //@ComponentScan -- 以当前包路径为根,开启组件扫描 public class MySpringBootApplication { /** * @Title: main * @Description: SpringBoot默认的Jar启动模式,直接Run即可运行,默认监听8080端口 * @param args * @throws Exception * @return: void * @author:ZQ * @date:2016年8月25日 下午1:58:25 */ public static void main(String[] args) throws Exception { SpringApplication.run(MySpringBootApplication.class, args); } }
创建Spring Boot的Servlet初始化器
package com.q.springboot.common; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; import com.q.springboot.MySpringBootApplication; /** * @ClassName: ServletInitializer * @Description: 打包为可部署War包时,Servlet3.0容器使用该类作为初始化器,是整个Web应用的主入口 * @author: ZQ * @date: 2016年9月2日 下午5:34:25 */ public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure (SpringApplicationBuilder builder) { // 指向SpringBoot的主入口 return builder.sources(MySpringBootApplication.class); } }
创建测试用Controller
package com.q.springboot.web; import org.springframework.web.bind.annotation.GetMapping; < 4000 span class="hljs-keyword">import org.springframework.web.bind.annotation.RestController; /** * @ClassName: SampleController * @Description: 定义一个测试用的Rest接口 * @author: ZQ * @date: 2016年9月7日 下午5:28:50 */ @RestController public class SampleController { @GetMapping("/hello") public String hello() { return "Hello World!"; } }
特别提示
上述方法打包的War包只能在Servlet 3.0及以上容器中运行,Servlet 3.0之后可以使用注释定义Servlet和Filter,无需在web部署描述符(web.xml)中建立Servlet/Filter配置。tomcat7.0以上版本支持Servlet 3.0。
Spring Boot也可以添加web.xml配置文件以便在Servlet 3.0之前的容器中运行,官方指导文档中没有给出web.xml具体的配置方法,此处待后续实现后补充。
Servlet 3.0之前版本War包的一般结构如下
└── META-INFO └── WEB-INFO └── lib #一些依赖的jar包 └── classes #classpath目录 └── web.xml └── 其它配置文件、属性文件等 └── 其它资源文件
代码下载地址
http://download.csdn.net/detail/jianghai0297/9625007开发环境
本文示例代码在以下版本的64位环境中测试通过JDK 1.8.0_11
Maven 3.2.1
Eclipse 4.4.2
Tomcat 7.0.42
相关文章推荐
- SpringBoot之打包成war包部署到tomcat
- SpringBoot打包jar、war部署项目
- 【天坑】springboot打包成war,部署到tomcat,访问404
- springboot打包(war)部署到tomcat
- 毕设-Maven打包war包部署到Tomcat服务器
- 通过eclipse把spring boot项目打包成war包并部署到tomcat服务器上的步骤
- 将Java Web项目打包成War文件部署到Tomcat服务器
- 如何在Eclipse下将Maven打包的war部署到远程Tomcat
- Intellij IDEA社区版打包Maven项目成war包,并部署到tomcat上
- SpringBoot的两种部署方法:jar和war
- springboot如何测试打包部署
- 如何打包war,PLSQL Developer,svn,部署Tomcat
- 将javaweb项目打包成war包部署到Tomcat目录下
- 使用tomcatPlugin配合JRebel解决maven项目依赖war的打包和热部署的问题
- spring boot打包成war包部署及修改默认配置文件的名称
- 服务器部署springboot打包后的jar(服务器多JDK环境)----jdk1.8
- Play Framework2之部署--项目打包成war包
- Spring boot打包war、jar部署tomcat