Springboot projesi ayrı bir tomcat'ta çalışmak üzere yayınlandı

Geliştirme aşamasında, gömülü tomcat'i geliştirme için kullanmanızı öneriyoruz, çünkü çok daha uygun olacak, ancak üretim ortamı için ayrı bir tomcat konteynerinde çalışmayı umuyorum, çünkü tomcat'e ek optimizasyonlar yapmamız gerekiyor, sonra projeyi değiştirmemiz gerekiyor Serbest bırakılmak üzere savaş paketine paketlenmiştir.

1. Projenin paketleme yöntemi savaş

2. Spring-boot-starter-tomcat'in kapsamını sağlanan olarak ayarlayın

Sağlanan olarak ayarlamak, ayrı bir tomcat'ta çalıştırılmasına gerek olmadığı için paketin paketleme sırasında hariç tutulacağı anlamına gelir.

< bağımlılık > < Grup kimliği > org.springframework.boot < /Grup kimliği > < artifactId > Spring-boot-starter-tomcat < / artifactId > < dürbün > sağlanan < /dürbün > < /bağımlılık >

Springboot'u bağımlılık aktarımı ile yapılandırdığımız için, yukarıdaki yapılandırmanın orijinal projede yapılandırılmadığı görülmüştür, bu nedenle yukarıdaki yapılandırma otomatik olarak eklenir ve bağımlılık aktarımını geçersiz kılan yapılandırmayı manuel olarak yapılandırmamız gerekir:

3. Kodu değiştirin ve başlangıç yapılandırmasını ayarlayın

SpringBootServletInitializer'ı miras almanız ve ardından Spring Boot'un giriş sınıfını ayarlamak için configure betiğini yeniden yazmanız gerekir.

paket cn.qlq.config; javax.sql.DataSource'u içe aktarın; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.builder.SpringApplicationBuilder; ithalat org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; org.springframework.context.annotation.Configuration dosyasını içe aktarın; import org.springframework.context.annotation.PropertySource; import com.jolbox.bonecp.BoneCPDataSource; / ** * Bağımsız bir Tomcat'te yayınlama, SpringBootServletInitializer sınıfını miras almalı ve yapılandırma yöntemini geçersiz kılmalıdır * / @Configuration // Sınıfın bir xml dosyasına eşdeğer olan bir Spring konfigürasyonu olduğunu belirtmek için bu açıklamayı kullanın @ComponentScan (basePackages = "cn.qlq") // Tarama paketini yapılandırın @PropertySource (value = {"sınıf yolu: db.properties"}, ignoreResourceNotFound = true) public class SpringConfig, SpringBootServletInitializer { @Value ("$ {jdbc.url}") özel String jdbcUrl; @Value ("$ {jdbc.driverClassName}") özel String jdbcDriverClassName; @Value ("$ {jdbc.username}") private String jdbcUsername; @Value ("$ {jdbc.password}") private String jdbcPassword; @Bean (destroyMethod = "kapat") public DataSource dataSource () { BoneCPDataSource boneCPDataSource = new BoneCPDataSource (); // veritabanı sürücüsü boneCPDataSource.setDriverClass (jdbcDriverClassName); // karşılık gelen sürücü jdbcUrl boneCPDataSource.setJdbcUrl (jdbcUrl); // Veritabanının kullanıcı adı boneCPDataSource.setUsername (jdbcUsername); // Veritabanı şifresi boneCPDataSource.setPassword (jdbcPassword); // Veritabanı bağlantı havuzundaki boş bağlantıların aralığını kontrol edin, birim dakikadır, varsayılan değer: 240, iptal etmek istiyorsanız, 0 olarak ayarlayın boneCPDataSource.setIdleConnectionTestPeriodInMinutes (60); // Bağlantı havuzundaki kullanılmayan bağlantıların maksimum hayatta kalma süresi, birim dakikadır, varsayılan değer: 60, sonsuza kadar yaşamak istiyorsanız, 0 olarak ayarlayın boneCPDataSource.setIdleMaxAgeInMinutes (30); // Bölüm başına maksimum bağlantı sayısı boneCPDataSource.setMaxConnectionsPerPartition (100); // Bölüm başına en az bağlantı sayısı boneCPDataSource.setMinConnectionsPerPartition (5); boneCPDataSource döndür; } @Override korumalı SpringApplicationBuilder yapılandırması (SpringApplicationBuilder oluşturucu) { // Bağımsız tomcat işleminin girişi için başlangıç sınıfını ayarlayın dönüş oluşturucu.sources (SpringConfig.class); } }

4. Hit savaş paketi:

Başarıyla paketlendi:

5. tomcat'e dağıtın

  • İlk yöntem: bu projeyi varsayılan proje olarak dağıtın

(1) Savaş paketini web uygulamaları altındaki ROOT dizinine çıkartın (orijinal ROOT klasörünün altındaki şeyleri silin), başlayın:

WEB-INF'in altında Web.xml yok

Açıklama: Yukarıdaki sıkıştırılmış dosyada web.xml yoktur, ancak yine de başlatılabilir. SpringConfig, SpringBootServletInitializer'ı miras aldığından, yaylı önyükleme, paketlerken bir dizi başlatma çalışması yapar (yukarıdaki org klasörü gibi).

(2) Testi başlat:

  • İkinci tür: Bu proje, dağıtım için normal bir projeye benzer ve proje adını eklemek için erişim gerekir

(1) Yazılan savaş paketini Tomcat kurulum dizininin altındaki webapps dizinine kopyalayın ve savaş paketini SSM.war olarak yeniden adlandırın ve Tomcat'i başlatın (savaş paketi Tomcat başladığında otomatik olarak taranacak ve sıkıştırılmış olacaktır)

(2) Testi başlat:

Not:

Springboot proje yöntemi, Eclipse dışa aktarımının savaş paketine dışa aktarılması ve ardından tomcat'e dağıtılması için kullanılmasını desteklemez çünkü bu tür Eclipse Dışa Aktarma, springboot tarafından yapılan başlatma işini taşımaz. Paketlenmiş şeyler aşağıdaki gibidir:

10 milyar veri hacmi, 10.000 özellik, 100.000 eşzamanlı veritabanı mimarisi tasarımı
önceki
Ulusal Günde çalışma bildirimi
Sonraki
"FİKİR" IDEA'da tomcat sanal yolunu yapılandırmanın iki yöntemi
Çinli bilim adamları dünyanın ilk biyolojik ritim bozukluğu somatik hücre klonu maymun modelini yarattı
Chongqing Nanchuan Jinfo Dağı'ndaki bulut denizi bir rüya ve bir fantezi gibi
Ulusal Günün erken saatlerinde Nanning'de şafak vakti
Bundesliga: Belvedere hat-trick, Augsburg 0-4 Hoffenheim
Programcının üç satır kodlu "aşk mektubu"
Orijinal Yaratıcı Sallayan Nian Taste Six Walnuts ve Douyin'in "Real Materials" ile Oynadığı Bahar Şenliği Pazarlaması
Tehlike alaylı Yanak: Atışınız dünyanın en iyilerinden alındı
Tibet'teki Everest Ana Kampında Yeni Çin'in kuruluşunun 69. yılını kutluyor
Ayrıntılı JSON sözdizimi
Java programcıları tarafından yapılan en yaygın 10 hata
Chongqing güzel havayı memnuniyetle karşılıyor, vatandaşlar güneşlenmek için dışarı çıkıyor
To Top