25 top spring mvc interview questions
Giriş Seviyesi ve Deneyimli Adaylar için Cevaplarla En Popüler Bahar MVC Mülakat Soruları:
Spring, tüm dünyada Java geliştiricileri tarafından Java Enterprise Web uygulamasını geliştirmek için kullanılan güçlü bir çerçevedir.
Spring MVC, Model Görünümü ve Denetleyici anlamına gelir. Tıpkı diğer çerçeve Struts gibi, Spring de JSP ve Servlet olan J2EE teknolojilerine ve Model, View ve Controller tasarım modelinin uygulanmasına dayanmaktadır.
Burada, en sık sorulan Spring MVC mülakat sorularını örneklerle inceleyeceğiz.
Ne öğreneceksin:
en iyi konuşma tanıma yazılımı nedir
Spring MVC Mimarisi
MVC mimarisi, geliştiricilerin güçlü ve gevşek bağlı bir uygulama geliştirmeleri için her zaman mevcut olan birçok dahili sınıf ve bileşene sahiptir.
Gevşek bağlı, sınıflar arasında herhangi bir sabit kodlanmış bağımlılık olmaması gerektiği anlamına gelir. Bu da, uygulama kodunun veya işlevselliğinin değiştirilmesi söz konusu olduğunda görevi oldukça karmaşık hale getirir.
MVC mimarisinin kendi bağımsız işlevleri vardır. Model katmanı tüm POJO sınıflarını içerir ve verilerin kapsüllenmesine yardımcı olur. Görünüm katmanı, model katmanında bulunan verileri oluşturmak için kullanılır ve genellikle bir web tarayıcısında alan istemci için HTML formatında çıktı oluşturmaya devam eder.
Son olarak, kontrolör talebin işlenmesinden ve doğru modelin oluşturulmasından sorumludur ve böylece yanıtı görünüm veya sunum katmanına gönderir.
Bu yazıda, aşağıda belirtildiği gibi Spring MVC'nin tüm önemli konularından geçeceksiniz:
- Spring MVC'nin çalışma prensibi
- Bahar mimarisi
- Dağıtıcı sunucu uygulaması kavramı
- İşleyici eşleme
- Kontrolör
- Çözümü görüntüle
- Spring MVC'nin farklı katmanları
- Yay çekirdeği, Spring MVC kullanmanın avantajları
- Yay modülleri
- AOP
- İfade dili
- Veri Erişim katmanı
- Web modülü
- Yönler
- Test vb.
- Pom.xml dosyaları hakkında kontrol ve bağımlılık enjeksiyonunun tersine çevrilmesi.
Bahar MVC'nin Artıları ve Eksileri'ne bir göz atalım !!
Bahar MVC'nin Artıları
Aşağıda, Bahar MVC'sinin çeşitli Artıları listelenmiştir:
- Çok küçük olduğundan daha az sorunla yüksek performans sunar.
- Üretkenliği yüksektir ve bu da gelişimi artırır.
- Spring SPI kullandığı için oldukça güvenlidir ve çoğunlukla tüm bankalar tarafından web uygulamaları için kullanılmaktadır.
- Model Görünümü ve kontrolör mimarisini desteklediği için modüler uygulamalar geliştirebiliriz.
- Çok iyi olan tam Test Güdümlü Geliştirmeyi destekler.
- Şimdiye kadar, geliştiriciler tarafından tüm dünyada çevik geliştirme web uygulamaları için en uygun olanıdır.
- Görevleri basitleştiren sorumluluk ve rol ayrımı özelliğine sahiptir.
- RESTful hizmeti için destek sağlar.
- Temaları, uluslararasılaştırmayı, diğer veritabanı çerçevelerini, JPA'yı, çoklu görünümleri ve topluluk desteğini destekler.
Spring MVC Eksileri
Aşağıda, Spring MVC'nin Eksilerinden bazıları verilmiştir:
- Spring çerçevesinin ve MVC mimarisinin öğrenme eğrisi, birkaç karmaşık konsepte sahip olduğu için geliştiriciler için biraz karmaşıktır.
- Bahar, XML tabanlı veya ek açıklama tabanlı olanlar gibi değişen bir yapıya sahiptir ve bu da zaman zaman takibi zorlaşır.
- Spring MVC'de çok daha az özellik.
- Jar dosyası mevcut değilse, uygulama düzgün çalışmayacaktır.
- Çok büyük yapılandırma sorunları, ele alınacak birçok denetleyici, denetlenecek birçok görünüm çözümleyici vb.
En Popüler İlkbahar MVC Mülakat Soruları
Aşağıda, Spring MVC için en önemli mülakat soruları listelenmiştir. Görüşmeciye açıklamada çok yardımcı olması için her sorunun konseptini anlamaya çalışın. Daima gerçek zamanlı uygulama örnekleri vermeye veya bunlarla ilişkilendirmeye çalışın. Bunlar deneyimli profesyoneller için de faydalıdır.
S # 1) Bahar Çerçevesi nedir ve neden bu kadar popüler?
Cevap: Spring Framework, gevşek bağlı Java web uygulamaları geliştirmek için kullanılan hafif bir çerçevedir.
Dahili bir kapsayıcı, bağımlılık enjeksiyonu ve MVC mimarisi sağlar. Ayrılmaya, yeniden kullanılabilirliğe izin verdiği ve kod uzunluğunu azaltmak için tekli, fabrika gibi tasarım modelleri sağladığı ve ayrıca zayıf bağlantıları ortadan kaldırdığı ve üçüncü tarafla güçlü entegrasyona sahip olduğu için çok popülerdir.
S # 2) Spring MVC nedir?
Cevap: Spring MVC, Model, View ve Controller kavramlarını takip eder.
Tek başına paylaşılan bir denetleyicinin bir örneğidir ve ayrıca durdurucular ve denetleyiciler gibi Denetimin Tersine Çevrilmesi kapsayıcılarında yürütülen çeşitli isteklerin işlenmesine yardımcı olur. Spring MVC kalıbı, uygulamanın girdi, iş ve sunum mantığını içeren yönlerini ayırmaya yardımcı olur.
S # 3) Spring Framework'ün temel özellikleri nelerdir?
Cevap:
Spring MVC'nin temel özellikleri şunlardır:
- Çerçeveyi ve sınıfları fasulyeler olarak etkili bir şekilde yapılandırabilir. Aynı zamanda fonksiyonel rolleri ve sorumlulukları ayrı ayrı böler.
- Uygulamayı oldukça ayarlanabilir ve esnek kılan sınırsız bir kontrolör yönteminin tanımlanmasına izin verir.
- İşleyici eşleme, bağlama, görünüm çözünürlüğü ve doğrulamalar için iyi özelleştirme sağlar.
- Harita kullanılarak modelin aktarılmasına yardımcı olur. Ayrıca hız, JSTL, JSP için destekler sağlar ve kullanıcı yerel ayarı ve tema çözünürlüğünü özelleştirebilir.
- Spring, kendisini daha esnek hale getiren ve veri bağlamayı, temaları, HTTP isteğine kadar yaşam döngüsüne sahip fasulyeleri destekleyen kendi etiket kitaplığına sahiptir.
S # 4) Dağıtıcı Servlet kavramını açıklayın.
Cevap: Dağıtıcı Servlet, tüm gelen HTTP İsteği ve Yanıtlarını işleyen ana merkezi sunucu uygulamasıdır. Spring IOC ile entegrasyona sahiptir ve bu nedenle Spring'in tüm özelliklerinin kullanılmasına izin verir.
Dağıtıcı sunucu uygulaması bir istek aldığında, uygun bir denetleyici almak için işleyici eşlemesine iletir ve şimdi denetleyici doğru hizmet yöntemini çağıracak ve tekrar dağıtıcı sunucu uygulamasına geri gönderecektir.
Yine, sunucu uygulaması, gerekli görünümü elde etmek için isteği görünüm çözümleyiciye gönderir ve ardından yanıtı istemci tarayıcısına gönderir.
Dağıtıcı sunucu uygulaması kullanımını gösteren Kod Örneği:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
S # 5) Spring MVC'de ContextLoaderListner'ın kullanımı nedir?
Cevap: Spring konfigürasyon dosyasını okumak ve ayrıştırmak ve o konfigürasyon dosyasındaki fasulyelerin yüklenmesini işlemek için kullanılır.
Kod Örneği:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
S # 6) Spring MVC'nin ön kontrolör sınıfını açıklayın.
Cevap: Front Controller, bir uygulamanın gelen tüm talebini ele almaktan sorumludur. Spring MVC'de, dağıtıcı sunucu uygulaması bir ön denetleyici görevi görür ve gelen tüm istekleri işler.
S # 7) @Autowired Annotation işlevini açıklayın.
Cevap: @Autowired ek açıklaması, bir fasulyenin alanlar ve yöntemlerle birlikte türüne göre enjekte edilmesinden sorumludur. Böylelikle, ortak fasulye çözme ve fasulyemize enjekte etme konusunda Yay çerçevesine yardımcı olur.
Misal:
package com.SoftwareTestingHelp; import org.Springframework.beans.factory.annotation.Autowired; public class WordEditor { private SpellChecker sp; @Autowired public void setSp( SpellChecker sp ){ this.sp = sp; } public SpellChecker getSp( ) { return sp; } public void spellCheck() { sp.checkSpelling(); } }
S # 8) Model Özniteliği açıklamasının işlevi nedir?
Cevap: @ModelAttribute ek açıklaması, Spring MVC çerçevesinde hayati bir rol oynar. İlgili model özniteliğiyle bağlama yöntemi parametresinden sorumludur ve ardından bunu sunum sayfasına gösterir.
Ayrıca, geliştiricinin model özellik ek açıklamasında ne kullandığına da bağlıdır. . Yöntem düzeyinde kullanılıyorsa, yöntemin öznitelik eklemekten sorumlu olduğunu gösterir. Parametre olarak kullanıldığında, parametre değerinin model katmanından alınması gerektiğini belirtir.
S # 9) Yol Değişkeninin kavramını ve işlevini açıklayın.
Cevap: @PathVariable, URI şablonunun değerini ayıklamak için işleyici yönteminde bir parametre olarak kullanılan bir açıklamadır.
Misal:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
S # 10) @RequestBody ek açıklamasının işlevi nedir?
Cevap: @RequestBody ek açıklaması, HTTP gövde isteğini bir etki alanı nesnesine bağlamadan sorumludur. Gelen HTTP isteği, HTTP ileti dönüştürücülerinin yardımıyla Spring tarafından Java nesnesine otomatik olarak serileştirilir.
S # 11) @ResponseBody ek açıklamasının işlevi nedir?
Cevap: @ResponseBody ek açıklaması MVC denetleyicisinde kullanıldığında, geliştiricinin doğrudan HTTP yanıt gövdesine bildirilen yöntemin bir dönüş türünü yazması gerektiğini belirtir. Burada modelin çağrılması gerekli değildir ve görünüm adı Spring tarafından yorumlanmaz.
S # 12) Neden Spring MVC'de View Resolver'a ihtiyacımız var ve Spring'de dahili bir görünüm çözümleyici nedir?
Cevap: View Resolver, modellerin web tarayıcısında oluşturulmasından sorumludur. JSP, XML ve Velocity gibi herhangi bir özel görünüm teknolojisi gerektirmez.
'InternalResourceViewResolver', Spring MVC'deki dahili görünüm çözümleyicidir.
Spring MVC'de aşağıda belirtildiği gibi bazı önemli görünüm çözümleyicileri vardır:
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotiatingViewResolver vb.
S # 13) Spring MVC Framework'ün çalışma prensibini açıklayın.
Cevap:
Aşağıdaki şema, akışın anlaşılmasına yardımcı olacaktır:
Bildiğimiz gibi Model, View ve Controller kavramlarına dayanmaktadır. Dağıtıcı Servlet web.xml'de yapılan sunucu uygulaması eşleştirmesine bağlı olarak HTTP isteğini alır.
Talep Dispatcher Servlet tarafından alındığında, gerekli denetleyici sınıfını almak için aynı isteği işleyici eşlemesine gönderir. İşleyici eşlemesi, Spring yapılandırma dosyasında belirtilmiştir.
Yine talep Denetleyiciye gönderilir ve denetleyici, isteği ve yöntemi işler ve gerekli model görünüm nesnesini dağıtımcı sunucu uygulamasına geri gönderir.
Şimdi istek, görünüm sayfasının sunumunu almak için bir sunucu uygulaması tarafından görünüm çözümleyiciye gönderilir.
Son olarak, Dispatcher Servlet modeli sunum sayfasına geçirir ve aynısı bir istemci tarayıcısına işlenir.
S # 14) BindingResults kullanmanın amacı nedir?
Cevap: BindingResults, paketin altındaki Spring'deki arabirimlerden biridir org. Bahar çerçevesi .validation ve bağlanma sonuçlarını temsil etmek için kullanılır.
Gönderilen formlardaki hataları tespit etmede kullanışlı bir rol oynar. Basit ve kolay bir çağırma sürecine sahiptir. Geliştirici, bağlama sonucunu nesne doğrulamasından hemen sonra bir parametre olarak koymayı akılda tutmalıdır.
Sözdizimi:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }
Burada, Bahar çerçevesi @Valid ek açıklamasını okuyarak anlayacak ve doğrulayıcısını bulmaya çalışacaktır.
S # 15) Spring Framework'ün Model 1 ve Model 2 mimarisini açıklayın.
Cevap: Bunlar, web uygulamaları geliştirmek için iki önemli tasarım modelidir.
Model 1:
Burada, gelen istek sunucu uygulaması veya bir JSP tarafından ele alınır. Sunucu uygulaması veya JSP sayfası, talebin işlenmesinden, işlenmesinden, iş mantığının kontrol edilmesinden, verilerin doğrulanmasından ve son olarak yanıtın oluşturulmasından sorumludur.
Basittir ve basit bir mimariye sahiptir ve çoğunlukla küçük ölçekli endüstriler tarafından basit uygulamalar geliştirmek için tercih edilir.
Model 2:
Önemli bir tasarım modelidir ve Model View Controller konseptine dayanmaktadır. Sunumu ve kodu işleyen mantık bölümünü ayırabilir.
Bu model sağlam, güvenilirdir ve ikiyüzlülüğü önler. Büyük ve karmaşık uygulamalar oluşturmak için iyidir.
S # 16) Kullanımı ile birlikte Yay MVC önleyicisinin işlevini açıklayın.
Cevap: Önleyiciler, Spring MVC'de kullanışlı bir rol oynar. Müşteriden gelen talebi yakalamak, talebi işleme koymadan önce, talebi ele aldıktan sonra ve sunum bölümü tamamlandıktan sonra, yani sayfayı görüntüle vb. Gibi farklı zamanlarda işlemek için kullanılırlar.
Aynı zamanda çapraz kesme endişelerinden de kullanılır ve daha sonra modeldeki global parametrelerin modifikasyonu, günlüğe kaydetme vb. Gibi kod işleyici tekrarını azaltır.
S # 17) Spring MVC'de birden fazla Spring konfigürasyon dosyasının kullanılmasına izin veriliyor mu?
Cevap: Evet, Spring tek bir uygulamada birden fazla yapılandırma dosyasına izin verir.
Bunu başarmanın başlıca iki yolu vardır ve bu yollar aşağıda belirtilmiştir:
(i) Geliştirici, web.xml'deki tüm dosyaları şu parametreyi kullanarak bildirmelidir:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii) Geliştirici, dosyaları mevcut yapılandırmaya aktarabilir.
S # 18) Aşağıdaki ek açıklamaların işlevlerini açıklayın: @Component, @Controller, @Repository, @Service.
Cevap: Bunlar, Spring MVC'deki önemli notlardır. Onlara bir göz atalım.
@Bileşen: Bu açıklama, bir java sınıfını, Spring tarafından tanınabilmesi ve uygulama bağlamında kullanılabilmesi için çekirdeğe dönüştürmekten sorumludur.
Sözdizimi:
hdd'yi ssd'ye klonlamak için en iyi yazılım
@Component public class StudentDAOImpl implements StudentDAO { ... }
@Repository: Bu açıklama, @Component ile aynı kullanıma sahiptir, ancak ek olarak, İlkbaharda kullanılabilecek kontrol edilmemiş istisnaları da dikkate alır.
@Hizmet: Bu açıklama aynı zamanda java sınıfını çekirdeğe dönüştürür, ancak gerçek zamanlı bir uygulamada daha iyi özellikler sağladığından @ bileşen yerine @ hizmet açıklamasını kullanmak daha iyidir.
@ Kontrolör: Herhangi bir sınıfı bir controller olarak yapmak istiyorsak, bu notu belirtmemiz gerekir.
S # 19) Çok parçalı çözümleyicinin rolü nedir ve ne zaman kullanılır?
Cevap: Multipart Resolver, dosyanın bir web uygulamasına yüklenmesinden sorumludur. Bunun için iki uygulama commonsMultipartResolver ve StandardServletMultipartResolver'dır.
S # 20) Spring MVC, doğrulama için nasıl destek sağlar?
Cevap: Spring, iki şekilde doğrulama desteği sağlar - yani Esas olarak JSR 303 açıklama ve Doğrulayıcı arabirimini kullanarak.
S # 21) Spring MVC web uygulamalarında Yerelleştirme nasıl gerçekleştirilir?
Cevap: Spring MVC, hem uluslararasılaşmayı hem de yerelleştirmeyi desteklemek için LocaleResolver ile yapılandırılmıştır. Bunu mümkün kılmak için bazı çekirdeklerin aşağıda belirtildiği gibi kaydedilmesi gerekir.
SessionLocaleResolver - Yerel ayarları çözmek için kullanıcı oturumunda önceden tanımlanmış özniteliklerin yardımını alır.
Sözdizimi:
LocaleChangeInterceptor - Gelen talepte bir parametre olduğunda kullanışlıdır.
Sözdizimi:
S # 22) Yükleme süreciyle birlikte Spring MVC'de kök uygulama bağlamı kavramını açıklayın.
Cevap: ContextLoaderListner, Spring MVC'de kök uygulama bağlamı olarak bilinir ve uygulamanın tamamı tarafından kullanılır.
Spring MVC'nin bootstrap yapmasına yardımcı olan bir dinleyicidir. Açık kod yazmaktan kaçınmak için applicationContext'i yüklemek ve oluşturmak için kullanılır. Bahar fasulyesi Uygulama Bağlamında tanımlanmıştır.
Genellikle dispatcherServlet, Spring MVC'deki sunucu uygulamalarını belirtmek için kullanılır.
S # 23) Web.xml'nin Spring MVC'deki rolü nedir ve nerede bulunur?
Cevap: Web.xml'de ContextLoaderListner'ı yapılandırıyoruz. Uygulamayı konuşlandırdığımızda, ContextLoaderListner için Servlet konteyneri tarafından bir örnek oluşturulur ve ardından webApplicationContext'in yüklenmesine yol açar.
S # 24) Denetleyici yönteminin bazı dönüş türlerini açıklayın.
Cevap: Denetleyici yöntemlerinin bazı önemli dönüş türleri arasında String, void, view, ModelAndView, Model, Map, HttpHeaders vb. Bulunur.
S # 25) Oluşturma aşamasında bir görünüm neye göre seçilir?
Cevap: MVC mimarisindeki ViewResolver, gerekli görünümü seçmekten sorumludur.
Denetleyici yanıtı dağıtıcı sunucu uygulamasına gönderdiğinde, isteği, sunum için bir istemci web tarayıcısına gönderilebilecek doğru görünüm sayfasını almak için görünüm çözümleyiciye gönderir.
S # 26) @Requestparam ve @PathVariable annotation arasındaki temel fark nedir?
Cevap: Bu ek açıklamalar, bir URL'den bilgi ve veri almak için kullanılır.
Ancak, aralarındaki temel fark, @Requestparam yalnızca sorgu parametrelerini getirmek için kullanılır ve @PathVariable, tam URL'yi getirmek için kullanılır.
S # 27) Görünüşe Dayalı Programlama kavramını açıklar mısınız?
Cevap: AOP, Spring MVC Mimarisinin önemli bir parçasıdır. AOP, endişelerin kesilmesi ve ayrıca uygulamalar, verilerin doğrulanması, modül günlüğü, işlem yönetimi, kimlik doğrulama ve nesneler için kullanılır.
Görünüşe Dayalı Programlamanın birçok bölümü vardır. Bunlar aşağıda belirtilmiştir:
- Görünüş: Aspect, işlem yönetimi vb. Gibi kesişen endişelerden sorumludur.
- Tavsiye: Temel olarak, belirli bir birleştirme noktası için yürütülen ve aynı zamanda kullanılan bir eylem ve yöntemdir.
- Nokta kesimi: Düzenli ifadeler bakımından tavsiyelerin yürütülmesinden sorumludur.
- Ortak Nokta: İstisna işleme, yöntemin çalıştırılması, değişken değer değişikliği gibi işlemler için uygulamada bir noktadır.
- Tavsiye Argümanları : Bu argümanlar yöntemlerin geçişi için kullanılır.
Sonuç
Umarım bu makaleden Spring MVC mimarisine tam bir genel bakış elde etmiş olursunuz.
Burada, Spring MVC akışının tüm uçtan uca akışını ele aldık, Neden Spring MVC'ye ihtiyacımız var? MVC mimarisindeki farklı modüller nelerdir? Spring MVC ve dispatcher servlet'in özellikleri, ön denetleyici kavramı, Dinleyiciler ve işlevi, @Autowired, @Controller, @RequestBody, vb. Gibi farklı açıklama türleri
Ayrıca View Resolver kavramı, AOP süreci ve kullanımları ile birlikte farklı denetleyici türleri hakkında daha fazla bilgi edindik. Lokalizasyon ve durdurucular, Spring çerçevesinin farklı mimarisi ve bağlama kavramı, kullanımları ile birlikte sonuçlanır.
Spring konteynerin ne olduğunu ve Spring MVC'de kullanımını öğrendik mi? Spring MVC'de konfigürasyon dosyalarının kullanımı, Yol değişken sorumlulukları ve önemi. etc Hemen hemen tüm önemli ve en çok beklenen Spring MVC mülakat soruları bu makalede açıklanmıştır.
Bununla birlikte, görüşmecinin beklentisini karşılamak için gerçek zamanlı uygulamada kod örnekleri ile açıklama yapılması her zaman tavsiye edilir. Her bir konsept için gerekli olan tüm kodlar, kolay anlaşmanız için burada ele alınmıştır.
Sizin için en iyisini diliyoruz!
Önerilen Kaynaklar
- Mülakat Soruları ve Cevapları
- 25 En İyi Çevik Test Mülakat Soruları ve Cevapları
- 25+ En Popüler ADO.NET Mülakat Soruları ve Cevapları
- Bazı Zor Manuel Test Soruları ve Cevapları
- ETL Test Mülakat Soruları ve Cevapları
- Yazılım Test Soruları ve Cevapları (Bölüm 1)
- 40+ Popüler Test QA Analisti Mülakat Soruları ve Cevapları (2021 LİSTESİ)
- İlk 25 İşlevsel Test Mülakat Soruları ve Cevapları