spring-boot 非常方便, 用来验证程序非常快速. 但如果基于spring-boot写了一个应用, 怎么部署呢 ?
spring-boot 打包有两种, 一种继续使用jar, 使用内置的web容器; 另一种使用war, 部署到已有的web容器中.
下面介绍war方式部署:
pom.xml 修改
首先把打包类型修改为: <packaging>war</packaging>
接着修改spring-boot-starter-tomcat
为provided
的scope, 避免打包到war中:
<dependencies> |
- 注意:
boot-start
版本要高于1.3
, 否则使用tomcat启动会出现异常.
<dependency> |
部署到 Servlet 3.0 规范的容器
如果你的web容器支持Servlet 3.0
规范, 可以使用以下的方法:
首先继承SpringBootServletInitializer
, 并覆写configure
方法, 不需要web.xml
.
@Configuration |
部署到旧的容器 (Servlet 2.5)
如果你的容器不支持servlet 3.0规范怎么办 ? 下面是一个解决方法:
1
增加一个org.springframework.boot:spring-boot-legacy
依赖2
创建web.xml
, 用以声明context listener
, 这个listener是org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener
, 是在spring-boot
下特别使用的, 其他配置和正常spring应用一样.web.xml
如下:
|
参考
howto-create-a-deployable-war-file
http://docs.spring.io/spring-boot/docs/current/maven-plugin/
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging