Update 74.1. Create a deployable war file.md
parent
1dc76c7481
commit
2b48d89f6e
|
@ -0,0 +1,51 @@
|
||||||
|
### 74.1. 创建一个可部署的war文件
|
||||||
|
|
||||||
|
产生一个可部署war包的第一步是提供一个SpringBootServletInitializer子类,并覆盖它的configure方法。这充分利用了Spring框架对Servlet 3.0的支持,并允许你在应用通过servlet容器启动时配置它。通常,你只需把应用的主类改为继承SpringBootServletInitializer即可:
|
||||||
|
```java
|
||||||
|
@SpringBootApplication
|
||||||
|
public class Application extends SpringBootServletInitializer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||||
|
return application.sources(Application.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
SpringApplication.run(Application.class, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
下一步是更新你的构建配置,这样你的项目将产生一个war包而不是jar包。如果你使用Maven,并使用`spring-boot-starter-parent`(为了配置Maven的war插件),所有你需要做的就是更改pom.xml的packaging为war:
|
||||||
|
```xml
|
||||||
|
<packaging>war</packaging>
|
||||||
|
```
|
||||||
|
如果你使用Gradle,你需要修改build.gradle来将war插件应用到项目上:
|
||||||
|
```gradle
|
||||||
|
apply plugin: 'war'
|
||||||
|
```
|
||||||
|
该过程最后的一步是确保内嵌的servlet容器不能干扰war包将部署的servlet容器。为了达到这个目的,你需要将内嵌容器的依赖标记为provided。
|
||||||
|
|
||||||
|
如果使用Maven:
|
||||||
|
```xml
|
||||||
|
<dependencies>
|
||||||
|
<!-- … -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-tomcat</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<!-- … -->
|
||||||
|
</dependencies>
|
||||||
|
```
|
||||||
|
如果使用Gradle:
|
||||||
|
```gradle
|
||||||
|
dependencies {
|
||||||
|
// …
|
||||||
|
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
|
||||||
|
// …
|
||||||
|
}
|
||||||
|
```
|
||||||
|
如果你使用[Spring Boot构建工具](http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#build-tool-plugins),将内嵌容器依赖标记为provided将产生一个可执行war包,在`lib-provided`目录有该war包的provided依赖。这意味着,除了部署到servlet容器,你还可以通过使用命令行`java -jar`命令来运行应用。
|
||||||
|
|
||||||
|
**注**:查看Spring Boot基于以上配置的一个[Maven示例应用](http://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-traditional/pom.xml)。
|
Loading…
Reference in New Issue