15 Bilmeniz Gereken Spring MVC Mülakat Soruları
Yayınlanan: 2018-03-25Spring, web uygulamalarının geliştirilmesi için en çok kullanılan Java çerçevelerinden biri haline geldi. Tüm yeni Java uygulamaları varsayılan olarak Spring core ve Spring MVC çerçevelerini kullanır. Artan popülaritesi sayesinde, dünyanın her yerindeki işe alım uzmanları, Spring çerçevesini uygulayan adaylar arıyor. Bir Java geliştirici rolü için bir röportaj için geliyorsanız, Spring MVC, ister daha yeni ister deneyimli biri olun, Spring framework mülakat soruları hakkındaki bilgilerinizi tazelemeniz gereken ilk şeylerden biridir.
Ne de olsa, Spring MVC çerçevesi en yaygın kullanılan Java çerçeveleridir ve oturduğunuz herhangi bir Java (veya ilgili herhangi bir röportaj) röportajında aynı şekilde ve çevresinde sorulan sorularla karşılaşmanız gerekir. Bilmiyorsanız, Spring MVC, web uygulamaları oluşturmaya yardımcı olan Java tabanlı sağlam bir çerçevedir. Adından da anlaşılacağı gibi, bir MVC mimarisi kullanır - Model, Görünüm, Denetleyici. Spring MVC, Spring'i MVC çerçevesiyle kullanmanın zarif bir yolunu sunar. 2002'de piyasaya sürülen Spring çerçevesi, açık kaynaklı bir çerçevedir; bu, tüm dünyadaki geliştiricilerin çerçevenin geliştirilmesine ve daha sonraki sürümlerine katkıda bulunabileceği anlamına gelir.
Swiggy, Quora, IMDB ve daha fazlası gibi uygulamalar oluşturmayı öğreninBu aynı zamanda, sorgularınızda size yardımcı olacak sürekli aktif bir geliştiriciler topluluğu olduğu anlamına gelir. Açık kaynaklı olmak, Spring çerçevesinin sunduğu çok sayıda faydaya da katkıda bulunur. Özellikle Java'da kariyerinize başlıyorsanız, rehberliğe ihtiyacınız olacak ve çeşitli Java geliştiricileri topluluğu, Spring MVC ile çalışma söz konusu olduğunda herhangi bir rehberlik eksikliği yaşamamanızı sağlar.
Sunabileceği bu kadar çok avantajla, Spring MVC'nin neden bir röportajın sizi sorgulamak için favori konusu olduğuna dair en ufak bir şüphe olmamalı.
Bu yazıda, oturduğunuz herhangi bir röportajda karşılaşmayı bekleyebileceğiniz, Spring MVC'nin bilmesi gereken 15 sorudan bahsedeceğiz.
1. Spring çerçevesi nedir?
Spring, uygulama geliştirmeyi basitleştirmek için oluşturulmuş açık kaynaklı bir çerçevedir. Geliştiricinin kullandığı bileşenler konusunda seçici olmasını sağlayan katmanlı bir yapıya sahiptir. Spring Core, Spring AOP ve Spring MVC olmak üzere üç ana bileşeni vardır.

Ayrıca, varsa, Bahar ile ilgili deneyiminizden bahsedebilirsiniz. Bu, cevabınıza çok fazla ağırlık katacaktır.
Şirketler Neden Tam Yığın Geliştiricileri İşe Almak İstiyor?2. Spring çerçevesinin temel özellikleri nelerdir?
Spring framework, geliştiricinin hayatını kolaylaştıracak birçok özellik sunar. Onlardan bazıları:
- Hafif: Yay son derece hafiftir, temel sürüm yaklaşık 1 MB'dir ve ihmal edilebilir işlem giderleri vardır.
- Inversion of Control (IoC): Dependency Injection veya Inversion of Control , Spring'in en önemli özelliklerinden biridir. IoC kullanarak, geliştiricilerin nesne ve bağımlılıkları için eksiksiz bir ortam oluşturmasına gerek yoktur; ele aldıkları nesneyi belirli bir zamanda oluşturup test edebilirler. Nesne bağımlılıkları, ihtiyaç duyulduğunda dahil edilecek veya çağrılacaktır.
- Aspect-Oriented Programming: Spring, Aspect-Oriented Programming'i destekler. AOP , ikincil işlevleri programcının iş mantığından ayırır. Bu sadece modülerlik sağlamakla kalmaz, aynı zamanda kodun bakımını da sağlar.
- MVC mimarisi: Spring, web uygulamaları için bir MVC çerçevesi ile birlikte gelir. Bu çerçeve, JSP, Tiles, iText ve POI gibi çeşitli teknolojiler kullanılarak yüksek düzeyde yapılandırılabilir.
- JDBC istisna işleme: Spring, genel istisna işleme sürecini basitleştiren önceden tanımlanmış bir JDBC soyutlama katmanıyla birlikte gelir.
3. Bağımlılık Enjeksiyonu hakkında biraz daha açıklayın.
Kontrolün Tersine Çevirilmesi veya Bağımlılık Enjeksiyonu, basit bir kavramı takip ederek nesne oluşturma sürecini basitleştirmeyi amaçlar - nesneler yaratmayın, sadece nasıl yaratılmaları gerektiğini açıklayın. IoC kullanarak, nesnelere bağımlılıkları, sistemdeki her nesneyi koordine etmekten sorumlu olan harici bir varlık tarafından yapı zamanında verilir. Özünde, IOC veya Dependency Injection kullanarak nesnelere bağımlılıklar enjekte ediyoruz.
4. İlkbaharda Bağımlılık Enjeksiyonlarının farklı türlerini açıklayın? Hangisini ne zaman kullanmalı?
Spring, geliştiricilere aşağıdaki iki tür bağımlılık enjeksiyonu sağlar:
- Yapıcı tabanlı DI: Yapıcı tabanlı DI, bir sınıfın yapıcısına bir dizi argüman (her biri diğer sınıfa bağımlılığı temsil eder) ileterek gerçekleştirilir. Basitçe, bağımlılıklar yapıcı parametreleri biçiminde verilir.
- Ayarlayıcı tabanlı DI: Argümansız bir kurucu ile çalışırken, dikkate alınan fasulyeyi başlatmak için ayarlayıcı işlevi aracılığıyla bağımsız değişkenler ileterek değerleri ayarlarsınız, buna ayarlayıcı tabanlı bağımlılık enjeksiyonu denir.
Bunlardan hangisini ne zaman kullanacaksınız, gereksinimlerinize bağlı. Ancak, isteğe bağlı bağımlılıklar için Ayarlayıcı tabanlı DI ve zorunlu bağımlılıklar için Yapıcı tabanlı DI kullanılması önerilir.
Fynd Kurucu Ortağı Farooq Adam ile röportaj
5. Spring MVC çerçevesi nedir?
Spring MVC, Spring çerçevesinin temel bileşenlerinden biridir. Geliştiricilerin esnek ve sağlam web uygulamaları oluşturmasına yardımcı olan kullanıma hazır bileşenler ve öğelerle birlikte gelir. Adından da anlaşılacağı gibi, MVC mimarisi uygulamanın farklı yönlerini (giriş mantığı, iş mantığı ve UI mantığı) ayırır. Ayrıca uygulamanın M, V ve C'si arasında gevşek bir bağlantı sağlar.
6. Spring MVC çerçevesinin diğer MVC çerçevelerine göre bazı faydaları nelerdir?
Spring MVC çerçevesinin diğer çerçevelere göre bazı açık avantajları vardır. Faydalarından bazıları şunlardır:
- Rollerin net bir şekilde ayrılması - Her rol için özel bir nesne vardır, böylece rollerin net bir şekilde ayrılması sağlanır.
- Yeniden kullanılabilir iş kodu – Spring MVC ile kodunuzu çoğaltmanız gerekmez. Belirli bir çerçeve temel sınıfını genişletmek için mevcut nesnelerinizi yansıtmak yerine komutlar olarak kullanabilirsiniz.
- Özelleştirilebilir bağlama ve doğrulama
- Özelleştirilebilir yerel ayar ve tema çözünürlüğü
- Özelleştirilebilir işleyici eşlemesi ve görüntüleme çözünürlüğü
- Spring 2.0'dan itibaren çerçeve, JSP sayfalarında form yazmayı çok daha kolay hale getiren bir JSP form etiketi kitaplığı ile birlikte gelir.
7. DispatcherServlet nedir?
Spring MVC çerçevesi istek odaklıdır ve tüm HTTP isteklerini ve yanıtlarını işleyen merkezi bir Servlet etrafında tasarlanmıştır. Ancak DispatcherServlet bundan çok daha fazlasını yapar. IoC kapsayıcısıyla sorunsuz bir şekilde bütünleşir ve Spring'in her özelliğini kullanmanıza olanak tanır.
Bir HTTP isteği alındığında, DispatcherServlet uygun Denetleyiciyi çağırmak için HandlerMapping'e (bunlar yapılandırma dosyalarıdır) danışır. Ardından denetleyici, Model verilerini ayarlamak için uygun hizmet yöntemlerini çağırır. Ayrıca, görünüm adını DispatcherServlet'e döndürür. DispatcherServlet, ViewResolver yardımıyla istek için tanımlanmış görünümü alır. Görünüm sonlandırıldığında, DispatcherServlet Model verilerini Görünüm'e iletir - burada nihayet tarayıcıda işlenir.
Test Odaklı Geliştirme Nedir: Yeni Başlayanlar Kılavuzu
8. Spring MVC'nin ön kontrolör sınıfı nedir?
Ön denetleyici, bir Web uygulaması için tüm istekleri işleyen bir denetleyicidir. Spring MVC söz konusu olduğunda, DispatcherServlet o ön kontrolördür. Spring MVC uygulamasına bir web isteği gönderildiğinde, DIspatcherServlet her şeyi halleder. İlk olarak, isteği alır. Ardından, istek işleyiciler, denetleyiciler, görünüm çözümleyiciler ve benzeri gibi farklı bileşenleri düzenler ve bunların tümü isteği işlemek için gereklidir. Ve son olarak, içeriği tarayıcıda işler.

9. Viewresolver modeli nedir ve MVC'de nasıl çalışır?
View Resolver, uygulamaların verileri tarayıcıda (View) işlemek için teknolojiyi dinamik olarak seçmesine izin veren bir J2EE modelidir. Görünüm için HTML, JSP, Goblen, XSLT, JSF gibi herhangi bir teknoloji veya benzeri herhangi bir teknoloji kullanılabilir. Görünüm Çözümleyici modeli, farklı görünümlerin eşlenmesini tutar. Denetleyici, uygun teknolojinin seçilmesi için View Resolver'a geçirilen Görünümün adını döndürür.
10. Spring MVC doğrulama desteğini nasıl sağlar?
Spring, öncelikle iki tür doğrulamayı destekler:
- JSR-303 Ek Açıklamalarını ve örneğin Hibernate Validator veya herhangi bir referans uygulamasını kullanma
- org.springframework.validation.Validator arabirimini uygulama.
11. Bir kullanıcı, bir onay kutusunu işaretlediğinde diğer alanlarda bir doğrulama hatası alıyor ve ardından bu kutunun işaretini kaldırıyor. Spring MVC'nin komut nesnesindeki mevcut seçim durumu ne olurdu? Bu sorunu nasıl düzelteceksiniz?
Spring MVC'deki HTTP Gönderi davranışının farkında değilseniz, yanıtlanması daha zor sorulardan biri budur.
HTTP Gönderimi sırasında, onay kutusunun işaretini kaldırırsanız, HTTP, onay kutusu için bir istek parametresi içermez - bu, güncellenen seçimin alınmayacağı anlamına gelir. Bunu düzeltmek için '_' ile başlayan gizli form alanını kullanabilirsiniz.
İlk Yazılım Geliştirme İşinizde Nasıl Başarılı Olabilirsiniz?
12. MVC çerçevesini üç katmanlı mimariyle nasıl karşılaştıracaksınız?
Üç katmanlı mimari bir mimari stildir, MVC ise bir tasarım modelidir.
Bununla birlikte, daha büyük uygulamalarda MVC, üç katmanlı bir mimarinin sunum katmanını oluşturur. Model, Görünüm ve Denetleyici yalnızca sunumla ilgilenir - modellerini doldurmak için orta katmanı kullanırlar.
13. Performansı optimize etmek için JDBC'yi İlkbaharda nasıl kullanmalıyız?
Spring, JDBCTemplate adında bir şablon sınıfı sağlar . JDBC'yi bu şablonla kullanmak, manifoldlara daha iyi performans sağlar.
14. Spring çerçevesi bağlamında “Bean” ile ne demek istiyorsunuz?
IoC kapsayıcısı tarafından başlatılan herhangi bir sınıf, Spring'de bean olarak bilinir. Spring Bean'in yaşam döngüsü, Spring IoC Container tarafından yönetilir.
15. Bahar Fasulyesi ile ilgili olarak “Kapsam” nedir?
Spring Beans, aşağıdaki beş kapsamla birlikte gelir:
- Prototip : Bir fasulye talebi olduğunda, her seferinde ayrı bir prototip oluşturulur.
- İstek : Bir önceki kapsam gibidir, ancak yalnızca web tabanlı uygulamalar içindir. Spring, her HTTP isteği için yeni bir bean örneği oluşturur.
- Singleton : Her kap için yalnızca bir tane fasulye oluşturulur ve o fasulyenin varsayılan kapsamı olarak hareket eder. Tüm bu durumlarda, veri tutarsızlığına yol açabileceğinden, çekirdekler paylaşılan bir örnek değişkeni kullanamaz.
- Oturum : Her HTTP oturumu için bir fasulye oluşturulur
- Global-session : Portlet uygulamaları için global oturum oluşturulur.
Spring çerçevesi genişletilebilir, yani kendi kapsamınızı da oluşturabilirsiniz. Bean öğesinin "scope" özelliği, kapsamı tanımlamak için kullanılır.
Tam Yığın Geliştirici Nasıl Olunur?
Kapatılıyor…
Bunların hepsi, Spring çerçevesi ve kesin olmak gerekirse Spring MVC etrafında dönen mutlaka bilinmesi gereken Spring röportaj soruları ve cevapları hakkındaydı. Spring'i kullanmaya başlamak isteyen bir Java geliştiricisiyseniz, bundan daha iyi bir zaman olamaz! Java mülakat soruları arıyorsanız daha fazlasını okuyun.
Java Baharı mülakat sorularına el atmak için değerli zamanınızın bir kısmını harcayın ve gitmeye hazırsınız. Kuruluşlar, sunduğu özellikler sayesinde bu çerçevede güçlü bir hakimiyete sahip geliştiriciler arıyor.

Dünyanın En İyi Üniversitelerinden Yazılım Mühendisliği Kurslarına Kaydolun. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
