Rumah >Java >javaTutorial >Cara menukar SpringBoot kepada bekas Servlet terbenam yang lain
Walau bagaimanapun, SpringBoot juga menyokong bekas Servlet yang lain lalai Tomcat hanyalah Salah satu daripadanya
Jetty
Sesuai untuk aplikasi pautan panjang seperti sembang
Undertow
ialah bekas Servlet tidak menyekat berprestasi tinggi dengan prestasi serentak yang sangat baik tetapi tidak menyokong jsp
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>
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>
Undertow berjaya dimulakan
1.1 disokong oleh SpringBoot dan penukaran mereka
1) Pelayan web yang disokong lalai: Tomcat, Jrtty, Undertow
2) Tukar pelayan
<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
UndertowServletWebServerFactory
6) 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
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
xxxxxPenyesuai
: 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
WebServerFactoryKelas 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!