War

提示

虾婆支持打成war包,放到tomcat、weblogic等web容器

打包

需要修改三处,首先给ClusterWebMvcApplication添加继承SpringBootServletInitializer,并重写configure函数,如下:

@SpringBootApplication
public class ClusterWebMvcApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
  
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

其次,修改pom.xml打包格式为war

<packaging>war</packaging>
1

最后,添加 spring-boot-starter-tomcat 依赖,特别注意 scope 为 provided

<dependencies>
  <!---->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
  </dependency>
  <!---->
</dependencies>
1
2
3
4
5
6
7
8
9

部署到WebLogic

在上一步的基础之上,ClusterWebMvcApplication 实现接口 WebApplicationInitializer

public class ClusterWebMvcApplication extends SpringBootServletInitializer implements WebApplicationInitializer {

  @Bean
  public BCryptPasswordEncoder bCryptPasswordEncoder() {
    return new BCryptPasswordEncoder();
  }

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(ClusterWebMvcApplication.class);
  }

  public static void main(String[] args) {
    SpringApplication.run(ClusterWebMvcApplication.class, args);
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

注意

微信公众号

参考