Rumah >Java >javaTutorial >Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain

Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain

王林
王林ke hadapan
2023-05-13 22:58:121519semak imbas

Cara menukar kepada bekas Servlet terbenam lain (Jeti dan Undertow)

Bekas Servlet terbina dalam lalai yang digunakan oleh SpringBoot ialah Tomcat

Walau bagaimanapun, SpringBoot juga menyokong bekas Servlet yang lain lalai Tomcat hanyalah Salah satu daripadanya

SpringBoot juga menyokong Jeti dan Undertow

  • JettySesuai untuk aplikasi pautan panjang seperti sembang

  • Undertow ialah bekas Servlet tidak menyekat berprestasi tinggi dengan prestasi serentak yang sangat baik tetapi tidak menyokong jsp

Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain

Jika anda mahu bertukar, cuma Kecualikan pemula Tomcat terbina dalam dalam fail pom dan kemudian perkenalkan pemula bekas Servlet lain

spring-boot-starter-tomcat diperkenalkan dalam spring-boot -starter-web, jadi Tomcat digunakan secara lalai

Jadi hanya kecualikan Tomcat asal dan kemudian perkenalkan kebergantungan bekas Servlet untuk ditambahkan:

Tukar ke Jeti:

<!-- 引入Web模块 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <!-- 排除tomcat容器 -->
        <exclusion>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <groupId>org.springframework.boot</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 引入其它的Servlet容器 -->
<dependency>
    <artifactId>spring-boot-starter-jetty</artifactId>
    <groupId>org.springframework.boot</groupId>
</dependency>

Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain

Jeti bermula dengan jayanya

Begitu juga bertukar kepada undertow:

<!-- 引入Web模块 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <!-- 排除tomcat容器 -->
        <exclusion>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <groupId>org.springframework.boot</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 引入其它的Servlet容器 -->
<dependency>
    <artifactId>spring-boot-starter-undertow</artifactId>
    <groupId>org.springframework.boot</groupId>
</dependency>

Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain

Undertow berjaya dimulakan

SpringBoot web development_embedded Servlet container

1. Tukar bekas Servlet terbenam

1.1 disokong oleh SpringBoot dan penukaran mereka

1) Pelayan web yang disokong lalai: Tomcat, Jrtty, Undertow

2) Tukar pelayan

Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

1.2 , Prinsip

1) Aplikasi SpringBoot bermula dan mendapati ia adalah aplikasi Web pada masa ini. pakej senario web - import tomcat

2) Aplikasi web akan mencipta versi web bekas ioc ServletWebServerApplicationContext

3) ServletWebServerApplicationContext Apabila bermula, cari ServletWebServerFactory-web server > pelayan web Servlet)

4) Lapisan bawah SpringBoot mempunyai banyak kilang WebServer secara lalai;

  • TomcatServletWebServerFactory

  • JettyServletWebServerFactory

    5) Akan ada kelas konfigurasi automatik terus di bahagian bawah.
  • ServletWebServerFactoryAutoConfiguration mengimport ServletWebServerFactoryConfiguration (kelas konfigurasi)

    UndertowServletWebServerFactory6) Kelas konfigurasi ServletWebServerFactoryConfiguration Tentukan secara dinamik pakej pelayan web yang telah diimport ke dalam sistem. (Lalainya ialah web-starter mengimport pakej tomcat), dan terdapat TomcatServletWebServerFactory

  • 7) dalam bekas TomcatServletWebServerFactory mencipta pelayan Tomcat dan memulakannya pembina TomcatWebServer- mempunyai kaedah permulaan. -this.tomcat.start() ;

8) Pelayan terbenam adalah untuk memanggil kod secara manual untuk memulakan pelayan (pakej balang teras tomcat wujud)

2

2.1. Ubah suai fail konfigurasi

Sesuaikan bekas Servlet

#修改servlet容器
server.port=8000
#server.undertow.accesslog.dir=/tmp

2.2, laksanakan WebServerFactoryCustomizer

xxxxx

Penyesuai

: Penyesuai yang boleh menukar peraturan lalai xxxx

Ubah suai nombor port tindak balas bekas Servlet melalui WebServerFactoryCustomizer

import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.stereotype.Component;
 
@Component
public class CustomizationBean implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
 
    @Override
    public void customize(ConfigurableServletWebServerFactory server) {
        server.setPort(9000);
    }
}
2.3, ConfigurableServletWebServerFactory

Secara langsung menyesuaikan kelas pelaksanaan antara muka ConfigurableServletWebServerFactory

WebServerFactory

Kelas pelaksanaan antara muka (kelas pelaksanaan lalai dalam rangka kerja):

Dengan menyesuaikan kelas pelaksanaan antara muka

ConfigurableServletWebServerFactory

, anda boleh menyesuaikan Servlet bekas

Atas ialah kandungan terperinci Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam