Hepinizin bildiği gibi, Spring Boot minimum yapılandırma ve düşünülmüş Kurulum ile bir WebApp veya StandaloneApp geliştirmenin harika bir yoludur.
Spring Boot uygulamasında Web Filtresi Geliştirme yöntemini bu şekilde elde ettim.
My SpringBootApp Özellikleri: -
Spring Boot sürümü: 2.0.4.RELEASE
Java Sürümü: 8.0 Sunucu Uygulaması
Özellikler: Servlet 3.0 (Zorunlu ve Önemli)
Web Filtremi Servlet Özellikler 3.0'a bağlı kalarak aşağıdaki şekilde beyan ettim
Bu, bir Filtreyi web.xml tabanlı tanımların yerine tanımlamanın Programlı yoludur.
"@Webfilter" ek açıklaması dağıtım sırasında kapsayıcı tarafından işlenecek, içinde bulunduğu Filtre sınıfı yapılandırmaya göre oluşturulacak ve javax.servlet.Servlets ve javax.servlet.DispatcherTypes URL kalıplarına uygulanacaktır.
Web.xml'den tamamen kaçınmak ve "Konuşlandırılabilir" WebApp'a ulaşmak için: -
Spring Boot Uygulamasını "Geleneksel SAVAŞ" olarak dağıtmak için, uygulama sınıfı SpringBootServletInitializer öğesini genişletmelidir.
NOT ::
SpringBootServletInitializer, WebApplicationInitializer uygulamasının uygulanmasını gerektiren Servlet 3.0+ belirtimlerine başvuru ile web.xml dosyasının "Programlı Uygulamasıdır".
Bu nedenle, SpringBootApplication Uygulama sınıfı olarak "web.xml" gerektirmez (
SpringBootServletInitializer genişletildikten sonra) - @WebFilter,
- @WebListener ve
- @WebServlet için tarama yapar.
Ek Açıklama @ServletComponentScan
Bu açıklama, @WebFilter, @WebListener ve @WebServlet ile açıklamalı web bileşenleri için temel paketlerin taranmasını sağlar.
Gömülü kapların @WebServlet, @WebFilter ve @WebListener ek açıklamalarını desteklememesi nedeniyle, gömülü kaplara büyük ölçüde dayanan Spring Boot, bu 3 ek açıklamayı kullanan bazı bağımlı kavanozları desteklemek için bu yeni ek açıklamayı @ServletComponentScan tanıttı.
Tarama yalnızca yerleşik bir Servlet kabı kullanılırken gerçekleştirilir.
Benim bahar çizme uygulama sınıfı tanımı aşağıdadır: -
Özel Sunucu Uygulaması Başlatıcı: -
Burada: Sınıf: SpringBootServletInitializer genişleten bir özel sınıf: "ServletInitializer" tanımladım.
Daha önce açıklandığı gibi,
SpringBootServletInitializer ek açıklamaları taramaktan sorumludur: - - @WebFilter,
- @WebListener ve
- @WebServlet.
Ve böylece Bahar Önyükleme Uygulama Sınıfı
- Sınıfı genişletin: SpringBootServletInitializer OR
- genişletme Sınıfı genişleten Özel sınıf: SpringBootServletInitializer