1. Kustomisasi boot musim semi dan optimalisasi wadah Tomcat bawaan.
> Ada tiga wadah bawaan, yaitu Undertow, Jetty, Tomcat, dan Spring Boot. Ketiga kontainer ini diimplementasikan secara terpisah. Antarmuka atas semua embeddedServletContainerFactory, yang juga merupakan inti utama dari artikel ini.
Ada dua cara utama untuk menyesuaikan dan mengoptimalkan wadah bawaan. Cara pertama adalah mengonfigurasinya melalui file konfigurasi, dan cara lain adalah kode kode. Selanjutnya, dua cara di atas terutama diterapkan.
2. Menyesuaikan dan mengoptimalkan Tomcat melalui file konfigurasi
> Untuk konten inti konfigurasi, lihat org.springframework.boot.autoconfigure.web.serverproperties kelas atribut layanan. Berikut ini menunjukkan beberapa konfigurasi tomcat
Server: Port: 8081 # Tomcat Set Tomcat: AccessLog: # Enable Log Access Diaktifkan: True # Log Saving Path Directory: E:/TMP/Logs
Untuk konten konfigurasi lebih lanjut, lihat properti bawaan dari org.springframework.boot.autoconfigure.web.serverproperties kelas.
3. Menerapkan konfigurasi dan optimalisasi wadah bawaan melalui kode kode
> Ada dua cara untuk menampilkan optimasi wadah bawaan dan kustomisasi menggunakan kode. Yang pertama adalah mengimplementasikan kustomer wadah servlet bawaan (org.springframework.boot.context.embedded.embedservletcontainerCustomizer) dan menyerahkan kelas kepada manajemen kontainer pegas. Yang lainnya adalah untuk mengkonfigurasi kelas implementasi antarmuka embeddedSerVletContainererFactory dalam wadah musim semi. Di sini kami terutama menargetkan Tomcat bawaan, yaitu, TomcatembedDedServletContainerFactory Class
3.1. Metode pertama adalah mengimplementasikan antarmuka embeddedservletcontainercustomizer dan menyerahkannya ke manajemen kontainer pegas
@ComponentPublic kelas myembeddedServerContainerCustomizer mengimplementasikan embeddedServletContainerCustomizer {@Override public void customize (contacherserveLdedServletContainer container) {//org.spramorkework.boot.context.embedded.tomcatory default adalah tomcat container system.out.println (container.getClass ()); Tomcatembedservletcontainererfactory factory = (tomcatembedservletcontainerfactory) wadah; // atur port factory.setport (8088); // Atur Tomcat Root Directory Factory.setBasedIrectory (file baru ("D:/tmp/tomcat")); // Atur Access Log Storage Directory Factory.AddContextValves (getLogAccessLogValue ()); // atur utas tomcat dan koneksi factory.addconnectorcustomizers (mytomcatconnectorcustomizer baru ()); // inisialisasi servletContext objek factory.addinitializers ((servletContext) -> {System.out.println ("= = = = Get Server Information = =" + servletContext.getServerInfo ());}); } private AccessLogValve getLogAccessLogValue () {AccessLogValve AccessLogValve = AccessLogValve baru (); AccessLogValve.SetDirectory ("D:/TMP/TOMCAT/LOG"); AccessLogValve.setEnabled (true); AccessLogValve.setPattern (constants.accesslog.common_pattern); AccessLogValve.setPrefix ("Springboot-Access-Log"); AccessLogValve.SetSuffix (". TXT"); Return AccessLogValve; }}/** * Customize the number of connections and threads of tomcat*/class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer { @Override public void customize(Connector connector) { //Connection protocol HTTP/1.1 System.out.println(connector.getProtocol()); // prosesor protokol koneksi org.apache.coyote.http11.http11nioprotocol system.out.println (connector.getProtocolHandler (). GetClass ()); // http11nioprotocol http11nioprotocol protocolhandler = (http11nioprotocol) connector.getProtocolHandler (); // Atur jumlah maksimum koneksi ProtocolHandler.SetMaxConnections (2000); // Atur jumlah maksimum thread protocolhandler.setmaxthreads (500); }}3.1. Konfigurasikan kelas implementasi embeddedservletcontainerer
@SpringbootconfigurationPublic kelas webserverConfiguration {@bean embeddedServletContainerFactory embeddedServletContainerFactory () {tomcatembedservletcontainerFactory factory = tomcatembeddedservletcontainerFactory (); // atur port factory.setport (8089); // Set 404 ERROR ACTERFACE FACTORY.AdderRorPAGES (ERRORPAGE baru (httpstatus.not_found, "/404.html")); // atur factory.addinitializers ((servletContext) -> {System.out.println ("= = = = Get Server Information = =" + ServletContext.GetServerInfo ());}); // Tetapkan jumlah maksimum koneksi dan jumlah maksimum thread factory.addconnectorcustomizers ((Connector) -> {http11nioprotocol protocolhandler = (http11niProtocol) connector.getProtolHandler (); ProtocolHandler.setMaxol (protocolhandler.setMaxol (protocolhandler.setMaxol (protocolhandler.setMaxCoxcon. }); // Atur direktori di mana file logging diakses factory.addcontextValves (getLoGAccessLogValue ()); Pabrik Kembali; } private AccessLogValve getLogAccessLogValue () {AccessLogValve AccessLogValve = AccessLogValve baru (); AccessLogValve.SetDirectory ("D:/TMP/LOG"); AccessLogValve.setEnabled (true); AccessLogValve.setPattern (constants.accesslog.common_pattern); AccessLogValve.setPrefix ("Springboot-Access-Log"); AccessLogValve.SetSuffix (". TXT"); Return AccessLogValve; }}4. Ringkasan
Di atas adalah penjelasan terperinci dari contoh wadah Tomcat bawaan dari kustomisasi dan optimasi boot musim semi yang diperkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!