springboot 将默认web容器tomcat 换成 jetty

springboot 将默认web容器tomcat 换成 jetty

springboot框架默认集成(tomcat或jetty)web容器,web容器也使用默认配置,不过也可在配置文件(application.properties)中进行重写覆盖;springboot项目的启动方式和java程序类似,使用main()方法启动非常方便快捷(也可以使用maven命令启动 mvn spring- boot:run)。框架默认使用tomcat容器,下面介绍如何将默认容器tomcat换成jetty容器。

###第一步修改pom.xml的配置,将原来的默认的tomcat依赖配置去掉;新增jetty依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--把pom中的tomcat依赖排除-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--增加jetty依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
</dependencies>

###第二步(方法一)在(DemoApplication.java命名可能不同)启动类中继承SpringBootServletInitializer类重写configure()方法;

1
2
3
4
5
6
7
8
9
10
11
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

###第二步(方法二)注入Jetty容器的管理Bean,在(DemoApplication.java命名可能不同)启动类中:

1
2
3
4
5
6
7
8
9
10
11
12
13
@SpringBootApplication
public class DemoApplication {
@Bean
public EmbeddedServletContainerFactory servletContainer() {
JettyEmbeddedServletContainerFactory factory =
new JettyEmbeddedServletContainerFactory();
return factory;
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

内置服务器配置覆盖说明使用可参见其他blog;项目亦可打包成war包手动放置web容器(tomcat,weblogic等)中进行项目部署。