25 top spring mvc interview questions
Najpopularniejsze pytania do wywiadów Spring MVC z odpowiedziami dla początkujących i doświadczonych kandydatów:
Spring to potężny framework, który jest używany na całym świecie przez programistów Java do tworzenia aplikacji internetowych Java Enterprise.
Spring MVC oznacza widok modelu i kontroler. Podobnie jak inne framework Struts, Spring jest również oparty na technologiach J2EE, którymi są JSP i Servlet, wraz z implementacją wzorca projektowego Model, Widok i Kontroler.
Tutaj omówimy najczęściej zadawane pytania podczas wywiadów Spring MVC wraz z przykładami.
Czego się nauczysz:
najlepsze oprogramowanie szpiegujące dla telefonów komórkowych z systemem Android
Architektura Spring MVC
Architektura MVC ma wiele wbudowanych klas i komponentów, które są zawsze dostępne dla programistów w celu opracowania silnej i luźno powiązanej aplikacji.
Luźno powiązane oznacza, że między klasami nie powinno być żadnych zakodowanych na stałe zależności. To z kolei komplikuje zadanie, jeśli chodzi o zmianę kodu czy funkcjonalności aplikacji.
Architektura MVC ma swoje własne niezależne funkcje. Warstwa modelu zawiera wszystkie klasy POJO i pomaga w enkapsulacji danych. Warstwa widoku służy do renderowania danych obecnych w warstwie modelu i generuje dane wyjściowe w formacie HTML dla klienta, który otrzymuje je zwykle w przeglądarce internetowej.
Ostatecznie kontroler jest odpowiedzialny za przetwarzanie żądania i zbudowanie prawidłowego modelu, a tym samym przesyła odpowiedź do warstwy widoku lub prezentacji.
W tym artykule omówisz wszystkie ważne tematy Spring MVC, jak wspomniano poniżej:
- Zasada działania Spring MVC
- Architektura wiosenna
- Koncepcja serwletu dyspozytorskiego
- Mapowanie obsługi
- Kontroler
- Zobacz rozwiązanie
- Różne warstwy Spring MVC
- Rdzeń sprężynowy, zalety stosowania Spring MVC
- Moduły sprężynowe
- AOP
- Język wyrażeń
- Warstwa dostępu do danych
- Moduł sieciowy
- Aspekty
- Test itp
- Odwrócenie kontroli i wstrzykiwania zależności, o plikach pom.xml.
Rzućmy okiem na zalety i wady Spring MVC !!
Plusy Spring MVC
Poniżej wymieniono różne zalety Spring MVC:
- Ponieważ jest bardzo mały, zapewnia wysoką wydajność przy mniejszej liczbie problemów.
- Ma wysoką produktywność, co z kolei zwiększa rozwój.
- Jest wysoce bezpieczny, ponieważ wykorzystuje Spring SPI i jest używany głównie przez wszystkie banki do ich aplikacji internetowych.
- Możemy tworzyć aplikacje modułowe, ponieważ obsługuje widok modelu i architekturę kontrolera.
- Obsługuje kompletne programowanie sterowane testami, co jest zbyt dobre.
- Do tej pory najlepiej nadaje się do tworzenia aplikacji internetowych zwinnych na całym świecie przez programistów.
- Posiada funkcję podziału odpowiedzialności i ról, co upraszcza zadania.
- Zapewnia obsługę usługi RESTful.
- Obsługuje motywy, internacjonalizację, inne struktury baz danych, JPA, wiele widoków i wsparcie społeczności.
Wady Spring MVC
Podaj poniżej niektóre z wad Spring MVC:
- Krzywa uczenia się frameworka Spring i jego architektury MVC jest trochę skomplikowana dla programistów, ponieważ ma kilka złożonych koncepcji.
- Wiosna ma zmienny charakter, taki jak oparty na XML lub oparty na adnotacjach, co z kolei czasami staje się trudne do śledzenia.
- Bardzo mniej specyfikacji w Spring MVC.
- Jeśli plik jar nie jest dostępny, aplikacja nie będzie działać poprawnie.
- Bardzo duże problemy z konfiguracją, wiele kontrolerów do obsługi, wiele rozpoznawania widoków do sterowania itp.
Najpopularniejsze pytania do wywiadów Spring MVC
Poniżej wymieniono najważniejsze pytania do wywiadu dla Spring MVC. Postaraj się zrozumieć koncepcję każdego pytania, aby było bardzo pomocne w wyjaśnieniu ankieterowi. Zawsze staraj się podawać lub korelować z przykładami aplikacji czasu rzeczywistego. Są one również pomocne dla doświadczonych profesjonalistów.
P 1) Co to jest Spring Framework i dlaczego jest tak popularny?
Odpowiedź: Spring Framework to lekki framework używany do tworzenia luźno powiązanych aplikacji internetowych w języku Java.
Zapewnia wbudowany kontener, iniekcję zależności i architekturę MVC. Jest bardzo popularny, ponieważ umożliwia odsprzęganie, wielokrotne użycie i zapewnia wzorce projektowe, takie jak singleton, fabryka w celu zmniejszenia długości kodu itp., A także usuwa słabe połączenia i ma potężną integrację z zewnętrzną firmą.
Pytanie 2) Co to jest Spring MVC?
Odpowiedź: Spring MVC jest zgodny z koncepcją modelu, widoku i kontrolera.
Jest to instancja kontrolera, która jest współużytkowana samodzielnie, a także pomaga obsługiwać kilka żądań wykonywanych w kontenerach Inversion of Control, takich jak przechwytywacze i kontrolery. Wzorzec Spring MVC pomaga oddzielić aspekty aplikacji, które obejmują logikę wejściową, biznesową i prezentacyjną.
Pytanie 3) Jakie są główne cechy Spring Framework?
Odpowiedź:
Podstawowe cechy Spring MVC to:
- Jest w stanie efektywnie konfigurować strukturę i klasy jako fasole. Oddzielnie dzieli również role i obowiązki funkcjonalne.
- Pozwala zdefiniować nieograniczoną metodę kontrolera, co sprawia, że aplikacja jest wysoce regulowana i elastyczna.
- Zapewnia dobre dostosowanie do mapowania obsługi, wiązania, rozdzielczości widoku i walidacji.
- Pomaga przenieść model za pomocą mapy. Zapewnia również obsługę szybkości, JSTL, JSP, a użytkownik może dostosować ustawienia regionalne i rozdzielczość motywu.
- Spring ma własną bibliotekę tagów, co czyni ją bardziej elastyczną i obsługuje wiązania danych, motywy, fasole mające cykl życia do żądania HTTP.
Pytanie 4) Wyjaśnij koncepcję serwletu dyspozytora.
Odpowiedź: Serwlet dyspozytorski jest głównym serwletem centralnym, który obsługuje wszystkie przychodzące żądania i odpowiedzi HTTP. Posiada integrację z Spring IOC, dzięki czemu pozwala na korzystanie ze wszystkich funkcji Springa.
Gdy serwlet dyspozytora otrzyma żądanie, przekazuje je do mapowania obsługi w celu uzyskania odpowiedniego kontrolera, a teraz kontroler wywoła poprawną metodę usługi i ponownie odeśle ją z powrotem do serwletu dyspozytora.
Ponownie, serwlet wysyła żądanie do resolvera widoku w celu uzyskania wymaganego widoku, a następnie wysyła odpowiedź do przeglądarki klienta.
Przykład kodu pokazujący użycie serwletu dyspozytora:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
P # 5) Jakie jest zastosowanie ContextLoaderListner w Spring MVC?
Odpowiedź: Służy do odczytywania i analizowania pliku konfiguracyjnego Spring oraz przetwarzania ładowania komponentów bean w tym pliku konfiguracyjnym.
Przykład kodu:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Q # 6) Wyjaśnij klasę kontrolera frontowego Spring MVC.
Odpowiedź: Front Controller jest odpowiedzialny za obsługę całego przychodzącego żądania aplikacji. W Spring MVC serwlet wysyłający działa jako kontroler frontowy i obsługuje całe przychodzące żądania.
P # 7) Wyjaśnij funkcję @Autowired Annotation.
Odpowiedź: Adnotacja @Autowired jest odpowiedzialna za wstrzykiwanie ziarna według jego typu wraz z polami i metodami. W ten sposób pomagamy Spring Framework w rozwiązywaniu i wstrzykiwaniu współpracujących ziaren do naszej fasoli.
Przykład:
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(); } }
P # 8) Jaka jest funkcja adnotacji atrybutu modelu?
Odpowiedź: Adnotacja @ModelAttribute odgrywa istotną rolę w strukturze Spring MVC. Odpowiada za parametr metody powiązania z odpowiednim atrybutem modelu, a następnie wyświetla go na stronie prezentacji.
Zależy to również od tego, co programista używa w adnotacji atrybutu modelu . Jeśli jest używany na poziomie metody, wskazuje, że metoda jest odpowiedzialna za dodawanie atrybutów. Gdy jest używany jako parametr, wskazuje, że wartość parametru powinna zostać pobrana z warstwy modelu.
Q # 9) Wyjaśnij pojęcie i funkcję zmiennej ścieżki.
Odpowiedź: @PathVariable to adnotacja używana jako parametr w metodzie obsługi do wyodrębniania wartości szablonu URI.
Przykład:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
Q # 10) Jaka jest funkcja adnotacji @RequestBody?
Odpowiedź: Adnotacja @RequestBody jest odpowiedzialna za powiązanie żądania treści HTTP z obiektem domeny. Przychodzące żądanie HTTP jest automatycznie usuwane z serializacji do obiektu Java przez Spring za pomocą konwerterów komunikatów HTTP.
Q # 11) Jaka jest funkcja adnotacji @ResponseBody?
Odpowiedź: Gdy adnotacja @ResponseBody jest używana w kontrolerze MVC, oznacza to, że deweloper musi napisać zwracany typ zadeklarowanej metody bezpośrednio do treści odpowiedzi HTTP. Tutaj wywołanie modelu nie jest wymagane, a nazwa widoku nie jest interpretowana przez Spring.
P # 12) Dlaczego potrzebujemy narzędzia View Resolver w Spring MVC i czym jest wewnętrzny mechanizm rozpoznawania widoku w Spring?
Odpowiedź: View Resolver odpowiada za renderowanie modeli w przeglądarce internetowej. Nie wymaga żadnych konkretnych technologii widoku, takich jak JSP, XML i Velocity itp.
„InternalResourceViewResolver” jest wewnętrznym programem rozpoznawania widoku w Spring MVC.
Istnieje kilka ważnych funkcji rozpoznawania widoku w Spring MVC, jak wspomniano poniżej:
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotiatingViewResolver itp.
Q # 13) Wyjaśnij zasadę działania Spring MVC Framework.
Odpowiedź:
Poniższy diagram pomoże w zrozumieniu przepływu:
Jak wiemy, opiera się na koncepcji modelu, widoku i kontrolera. Serwlet dyspozytorski odbiera żądanie HTTP w zależności od odwzorowania serwletu wykonanego w pliku web.xml.
Gdy żądanie zostanie odebrane przez serwlet dyspozytora, wysyła to samo żądanie do odwzorowania programu obsługi, aby uzyskać wymaganą klasę kontrolera. Mapowanie programu obsługi jest wymienione w pliku konfiguracyjnym Spring.
Żądanie jest ponownie wysyłane do kontrolera, który przetwarza żądanie i metodę oraz odsyła wymagany obiekt widoku modelu do serwletu dyspozytora.
Teraz żądanie jest wysyłane do resolwera widoku przez aplet w celu uzyskania prezentacji strony widoku.
Na koniec Dispatcher Servlet przekazuje model do strony prezentacji i to samo jest renderowane do przeglądarki klienta.
P # 14) Jaki jest cel używania BindingResults?
Odpowiedź: BindingResults to jeden z interfejsów w Spring, który znajduje się w pakiecie org. Springframework .uprawomocnienie i służy do reprezentowania wyników wiązania.
Odgrywa przydatną rolę w wykrywaniu błędów w przesłanych formularzach. Ma prosty i łatwy proces wywoływania. Deweloper musi pamiętać o umieszczeniu wyniku powiązania jako parametru tuż po walidacji obiektu.
Składnia:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }
Tutaj framework Spring zrozumie, czytając adnotację @Valid i spróbuje znaleźć jej walidator.
Q # 15) Wyjaśnij architekturę Model 1 i Model 2 Spring Framework.
Odpowiedź: Oto dwa ważne modele projektowe do tworzenia aplikacji internetowych.
Model 1:
W tym przypadku przychodzące żądanie jest obsługiwane przez serwlet lub stronę JSP. Aplet lub strona JSP jest odpowiedzialna za obsługę, przetwarzanie żądania, sterowanie logiką biznesową, sprawdzanie poprawności danych i wreszcie za generowanie odpowiedzi.
Jest prosty i ma łatwą architekturę i jest preferowany głównie przez małe branże do tworzenia prostych aplikacji.
Model 2:
Jest to ważny model projektowy oparty na koncepcji kontrolera widoku modelu. Jest w stanie oddzielić prezentację od sekcji logicznej, która manipuluje kodem.
Ten model jest solidny, niezawodny i unika dwulicowości. Jest dobry do budowania dużych i złożonych aplikacji.
Q # 16) Wyjaśnij funkcję przechwytywacza Spring MVC wraz z jego zastosowaniem.
Odpowiedź: Interceptory odgrywają przydatną rolę w Spring MVC. Służą do przechwytywania żądania od klienta, przetwarzania żądania w różnym czasie, np. Przed obsługą żądania, po jego obsłudze i po zakończeniu części prezentacyjnej tj. Przeglądanie strony itp.
Jest również używany w przypadku problemów związanych z wycinaniem i zmniejsza liczbę powtórzeń obsługi kodu, takich jak modyfikacja parametrów globalnych w modelu później, rejestrowanie itp.
Pytanie 17) Czy w Spring MVC można używać wielu plików konfiguracyjnych Spring?
Odpowiedź: Tak, Spring pozwala na posiadanie wielu plików konfiguracyjnych w jednej aplikacji.
Można to osiągnąć głównie na dwa sposoby, które opisano poniżej:
(i) Programista musi zadeklarować wszystkie pliki w web.xml za pomocą parametru:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii) Programista może importować pliki do istniejącej konfiguracji.
Q # 18) Wyjaśnij funkcje następujących adnotacji: @Component, @Controller, @Repository, @Service.
Odpowiedź: To są ważne adnotacje w Spring MVC. Przyjrzyjmy się im.
@Składnik: Ta adnotacja jest odpowiedzialna za konwersję klasy Java do komponentu bean, tak aby Spring mogła zostać rozpoznana i użyta w kontekście aplikacji.
Składnia:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@Magazyn: Ta adnotacja ma takie samo przeznaczenie jak @Component, ale dodatkowo uwzględnia również niezaznaczone wyjątki, których można używać wiosną.
@Usługa: Ta adnotacja również konwertuje klasę Java na komponent bean, ale lepiej jest używać adnotacji @service niż @component, ponieważ zapewnia lepsze specyfikacje w aplikacji czasu rzeczywistego.
@Kontroler: Jeśli chcemy utworzyć jakąkolwiek klasę jako kontroler, musimy określić tę adnotację.
P # 19) Jaka jest rola programu Resolver Multipart i kiedy jest używany?
Odpowiedź: Multipart Resolver jest odpowiedzialny za przesyłanie pliku do aplikacji internetowej. Dwie jego implementacje to commonsMultipartResolver i StandardServletMultipartResolver.
P # 20) W jaki sposób Spring MVC zapewnia wsparcie dla walidacji?
Odpowiedź: Spring zapewnia obsługę walidacji na dwa sposoby - tj. Głównie za pomocą adnotacji JSR 303 i interfejsu Validator.
Pytanie 21) W jaki sposób uzyskuje się lokalizację w aplikacjach internetowych Spring MVC?
Odpowiedź: Spring MVC jest skonfigurowany z LocaleResolver do obsługi zarówno internacjonalizacji, jak i lokalizacji. Aby było to możliwe, niektóre ziarna muszą zostać zarejestrowane, jak wspomniano poniżej.
SessionLocaleResolver - Rozpoznawanie ustawień regionalnych wymaga pomocy już zdefiniowanych atrybutów w sesji użytkownika.
Składnia:
LocaleChangeInterceptor - Jest to przydatne, gdy w przychodzącym żądaniu występuje parametr.
Składnia:
Q # 22) Wyjaśnij koncepcję kontekstu aplikacji root w Spring MVC wraz z procesem ładowania.
Odpowiedź: ContextLoaderListner jest znany jako kontekst aplikacji głównej w Spring MVC i jest używany przez całą aplikację.
Jest to słuchacz, który pomaga w bootstrapie Spring MVC. Służy do ładowania i tworzenia applicationContext, aby uniknąć pisania jawnego kodu. Fasola wiosenna jest zdefiniowana w kontekście aplikacji.
Ogólnie rzecz biorąc, dispatcherServlet służy do określania serwletów w Spring MVC.
P # 23) Jaka jest rola pliku web.xml w Spring MVC i gdzie się on znajduje?
Odpowiedź: W web.xml konfigurujemy ContextLoaderListner. Kiedy wdrażamy aplikację, instancja jest tworzona przez kontener serwletu dla ContextLoaderListner, a następnie prowadzi do załadowania webApplicationContext.
Q # 24) Opisz niektóre zwracane typy metody kontrolera.
Odpowiedź: Niektóre z ważnych typów zwracanych metod kontrolera obejmują String, void, view, ModelAndView, Model, Map, HttpHeaders itp.
P # 25) Na jakiej podstawie wybierany jest widok w fazie renderowania?
Odpowiedź: ViewResolver w architekturze MVC jest odpowiedzialny za wybór wymaganego widoku.
Gdy kontroler wysyła odpowiedź do serwletu dyspozytora, wysyła żądanie do resolvera widoku w celu uzyskania poprawnej strony widoku, która może zostać wysłana do przeglądarki internetowej klienta w celu prezentacji.
P # 26) Jaka jest główna różnica między adnotacją @Requestparam a @PathVariable?
Odpowiedź: Te adnotacje służą do pobierania informacji i danych z adresu URL.
Ale główna różnica między nimi polega na tym, że @Requestparam służy tylko do pobierania parametrów zapytania, a @PathVariable służy do pobierania pełnego adresu URL.
implementacja c ++ drzewa binarnego
Q # 27) Wyjaśnij koncepcję programowania zorientowanego na aspekt?
Odpowiedź: AOP jest ważną częścią architektury Spring MVC. AOP jest używany do przekrojowych zagadnień, a także do aplikacji, walidacji danych, logowania modułów, zarządzania transakcjami, uwierzytelniania i obiektów.
Istnieje wiele części programowania zorientowanego na aspekty. Są one wymienione poniżej:
- Aspekt: Aspect jest odpowiedzialny za zagadnienia przekrojowe, takie jak zarządzanie transakcjami itp.
- Rada: Zasadniczo jest to akcja i metoda, które są wykonywane i są również używane dla określonego punktu złączenia.
- Punkt cięcia: Odpowiada za wykonywanie porad w zakresie wyrażeń regularnych.
- Wspólny punkt: Jest to punkt aplikacji dla procesów takich jak obsługa wyjątków, wykonanie metody, zmiana wartości zmiennych itp.
- Argumenty doradcze : Te argumenty są używane do przekazywania metod.
Wniosek
Mam nadzieję, że w tym artykule uzyskasz pełny przegląd architektury Spring MVC.
Tutaj omówiliśmy pełny przepływ przepływu Spring MVC od końca do końca. Dlaczego potrzebujemy Spring MVC? Jakie są różne moduły w architekturze MVC? Cechy Spring MVC i serwletu dyspozytora, koncepcja kontrolera frontowego, odbiorniki i jego funkcja, różne typy adnotacji, takie jak @Autowired, @Controller, @RequestBody itp.
Dowiedzieliśmy się również więcej o koncepcji View Resolver, procesie AOP i różnych typach kontrolera wraz z jego zastosowaniami. Lokalizacja i interceptory, inna architektura frameworka Spring i koncepcja powiązania wynikają z jego zastosowań.
Dowiedzieliśmy się, co to jest kontener Spring i jego zastosowanie w Spring MVC? Wykorzystanie plików konfiguracyjnych w Spring MVC, zmienna odpowiedzialność i znaczenie ścieżki. etc Niemal wszystkie ważne i najbardziej oczekiwane pytania podczas rozmowy kwalifikacyjnej Spring MVC są wyjaśnione w tym artykule.
Jednak zawsze zaleca się wyjaśnienie za pomocą przykładów kodu w aplikacji czasu rzeczywistego, aby spełnić oczekiwania ankietera. Wszystkie kody wymagane dla każdej koncepcji są tutaj opisane dla łatwego zrozumienia.
Życzymy Ci wszystkiego najlepszego!
rekomendowane lektury
- Pytania i odpowiedzi do wywiadu
- 25 najlepszych pytań i odpowiedzi do wywiadów z testami zwinnymi
- Ponad 25 najpopularniejszych pytań i odpowiedzi do wywiadów ADO.NET
- Niektóre trudne pytania i odpowiedzi do testowania ręcznego
- ETL Testing Interview Pytania i odpowiedzi
- Pytania i odpowiedzi dotyczące testowania oprogramowania (część 1)
- 40+ popularnych pytań i odpowiedzi do wywiadów z analitykami ds. Kontroli jakości (2021 LIST)
- 25 najczęściej zadawanych pytań i odpowiedzi na rozmowę z testami funkcjonalnymi