15 pytań do wywiadu MVC, które musisz znać na wiosnę
Opublikowany: 2018-03-25Spring stał się jednym z najczęściej używanych frameworków Java do tworzenia aplikacji internetowych. Wszystkie nowe aplikacje Java domyślnie wykorzystują Spring Core i Spring MVC. Ze względu na rosnącą popularność rekruterów na całym świecie poszukują kandydatów bezpośrednio z platformą Spring. Jeśli pojawiasz się na rozmowę kwalifikacyjną na stanowisko programisty Java, Spring MVC jest jedną z pierwszych rzeczy, które powinieneś odświeżyć w zakresie pytań do rozmowy kwalifikacyjnej w ramach platformy Spring – niezależnie od tego, czy jesteś nowicjuszem, czy osobą z doświadczeniem.
W końcu framework Spring MVC jest najczęściej używanym frameworkiem Java i na pewno będziesz otrzymywać pytania w tym samym i wokół tego samego, w każdej rozmowie w języku Java (lub innej powiązanej rozmowie kwalifikacyjnej), na którą bierzesz udział. Jeśli nie wiesz, Spring MVC to solidna platforma oparta na Javie, która pomaga w tworzeniu aplikacji internetowych. Jak sama nazwa wskazuje, wykorzystuje architekturę MVC – Model, View, Controller. Spring MVC zapewnia elegancki sposób korzystania ze Springa z frameworkiem MVC. Wydany w 2002 roku framework Spring jest frameworkiem o otwartym kodzie źródłowym, co oznacza, że programiści na całym świecie mogą przyczynić się do rozwoju i kolejnych wydań frameworka.
Naucz się tworzyć aplikacje, takie jak Swiggy, Quora, IMDB i nie tylkoOznacza to również, że istnieje zawsze aktywna społeczność programistów, którzy pomogą Ci z zapytaniami. Bycie open-source dodaje również mnóstwo korzyści, jakie oferuje framework Spring. Zwłaszcza jeśli zaczynasz swoją karierę w Javie, potrzebujesz wskazówek, a zróżnicowana społeczność programistów Java zapewnia, że nie zabraknie Ci wskazówek, jeśli chodzi o pracę z Spring MVC.
Przy tak wielu korzyściach do zaoferowania nie powinno być ani krzty wątpliwości, dlaczego Spring MVC jest ulubionym tematem wywiadów.
W tym artykule omówimy 15 takich pytań, które trzeba znać w Spring MVC, których możesz się spodziewać podczas każdego wywiadu, na który zasiadasz.
1. Czym jest framework Spring?
Spring to platforma typu open source, która została stworzona w celu uproszczenia tworzenia aplikacji. Ma warstwową strukturę, która pozwala programiście na selektywne wybieranie używanych komponentów. Składa się z trzech głównych komponentów — Spring Core, Spring AOP i Spring MVC.

Ponadto możesz porozmawiać o swoich doświadczeniach ze Springiem, jeśli takie istnieją. To doda dużo wagi twojej odpowiedzi.
Dlaczego firmy chcą zatrudniać programistów Full Stack2. Jakie są główne cechy frameworka Spring?
Framework Spring oferuje wiele funkcji ułatwiających życie programistom. Niektórzy z nich są:
- Lekkość: Spring jest niezwykle lekki, podstawowa wersja ma około 1 MB, przy znikomych kosztach przetwarzania.
- Inversion of Control (IoC): Dependency Injection lub Inversion of Control to jedna z najważniejszych funkcji Springa. Korzystając z IoC, programiści nie muszą tworzyć kompletnego środowiska dla obiektu i jego zależności; mogą po prostu stworzyć i przetestować obiekt, z którym mają do czynienia w danym momencie. Zależności obiektowe zostaną uwzględnione lub wywołane, gdy zajdzie taka potrzeba.
- Programowanie zorientowane na aspekty: Spring obsługuje programowanie zorientowane na aspekty. AOP izoluje funkcje drugorzędne z logiki biznesowej programisty. Zapewnia to nie tylko modułowość, ale także umożliwia konserwację kodu.
- Architektura MVC: Spring zawiera platformę MVC dla aplikacji internetowych. Ta struktura jest wysoce konfigurowalna przy użyciu różnych technologii, takich jak JSP, Tiles, iText i POI.
- Obsługa wyjątków JDBC: Spring zawiera predefiniowaną warstwę abstrakcji JDBC, która upraszcza cały proces obsługi wyjątków.
3. Wyjaśnij nieco więcej na temat wstrzykiwania zależności.
Inversion of Control lub Dependency Injection ma na celu uproszczenie procesu tworzenia obiektów poprzez podążanie za prostą koncepcją – nie twórz obiektów, tylko opisz jak powinny być tworzone. Korzystając z IoC, obiekty otrzymują swoje zależności w czasie kompilacji przez zewnętrzną jednostkę, która jest odpowiedzialna za koordynację każdego obiektu w systemie. Zasadniczo wstrzykujemy zależności do obiektów za pomocą IOC lub Dependency Injection.
4. Wyjaśnij różne rodzaje wstrzyknięć zależności na wiosnę? Kiedy używać którego?
Spring zapewnia programistom następujące dwa rodzaje wstrzyknięć zależności:
- DI oparte na konstruktorze: DI oparte na konstruktorze jest realizowane przez przekazanie szeregu argumentów (z których każdy reprezentuje zależność od innej klasy) do konstruktora klasy. Po prostu zależności podane są w postaci parametrów konstruktora.
- DI oparte na setterze: podczas pracy z konstruktorem bezargumentowym ustawiasz wartości, przekazując argumenty przez funkcję ustawiającą, aby utworzyć wystąpienie rozważanego ziarna, jest to nazywane wstrzykiwaniem zależności opartym na setterze.
Kiedy użyjesz którego z nich, sprowadza się do Twoich wymagań. Jednak zaleca się używanie DI opartego na Setterze dla opcjonalnych zależności i DI opartego na konstruktorze dla obowiązkowych zależności.
Wywiad z Farooq Adamem, współzałożycielem Fynd
5. Czym jest framework Spring MVC?
Spring MVC jest jednym z podstawowych elementów frameworka Spring. Zawiera gotowe do użycia komponenty i elementy, które pomagają programistom tworzyć elastyczne i niezawodne aplikacje internetowe. Jak sama nazwa wskazuje, architektura MVC oddziela różne aspekty aplikacji – logikę wejściową, logikę biznesową i logikę interfejsu użytkownika. Zapewnia również luźne sprzężenie między M, V i C aplikacji.
6. Jakie są zalety frameworka Spring MVC w porównaniu z innymi frameworkami MVC?
Framework Spring MVC ma pewne wyraźne zalety w porównaniu z innymi frameworkami. Niektóre z korzyści to:
- Wyraźne rozdzielenie ról – dla każdej roli istnieje wyspecjalizowany obiekt, co zapewnia wyraźny rozdział ról.
- Kod biznesowy wielokrotnego użytku — dzięki Spring MVC nie musisz duplikować kodu. Możesz używać istniejących obiektów jako poleceń zamiast ich dublowania w celu rozszerzenia określonej klasy bazowej frameworka.
- Konfigurowalne wiązanie i walidacja
- Możliwość dostosowania rozdzielczości ustawień regionalnych i motywów
- Konfigurowalne mapowanie obsługi i rozdzielczość widoku
- Począwszy od Spring 2.0, framework dostarczany jest z biblioteką znaczników formularzy JSP, która znacznie ułatwia pisanie formularzy na stronach JSP.
7. Co to jest DispatcherServlet?
Framework Spring MVC jest oparty na żądaniach i jest zaprojektowany wokół centralnego serwletu, który obsługuje wszystkie żądania i odpowiedzi HTTP. DispatcherServlet , jednak robi o wiele więcej niż tylko to . Bezproblemowo integruje się z kontenerem IoC i umożliwia korzystanie z każdej funkcji Spring.
Po otrzymaniu żądania HTTP, DispatcherServlet konsultuje się z HandlerMapping (są to pliki konfiguracyjne), aby wywołać odpowiedni kontroler. Następnie kontroler wywołuje odpowiednie metody serwisowe w celu ustawienia danych Modelu. Zwraca również nazwę widoku do DispatcherServlet. DispatcherServlet za pomocą ViewResolver pobiera zdefiniowany widok dla żądania. Po sfinalizowaniu widoku, DispatcherServlet przekazuje dane modelu do widoku — gdzie są one ostatecznie renderowane w przeglądarce.
Co to jest programowanie sterowane testami: przewodnik dla początkujących
8. Jaka jest klasa przedniego kontrolera Spring MVC?
Kontroler frontowy to kontroler, który obsługuje wszystkie żądania aplikacji internetowej. Jeśli chodzi o Spring MVC, tym przednim kontrolerem jest DispatcherServlet. Kiedy żądanie sieciowe jest wysyłane do aplikacji Spring MVC, DIspatcherServlet zajmuje się wszystkim. Po pierwsze, zajmuje się żądaniem. Następnie organizuje różne komponenty, takie jak programy obsługi żądań, kontrolery, programy rozpoznawania widoków i tym podobne — wszystkie potrzebne do obsługi żądania. I wreszcie, renderuje zawartość w przeglądarce.

9. Co to jest wzorzec Viewresolver i jak działa w MVC?
View Resolver to wzorzec J2EE, który pozwala aplikacjom na dynamiczny wybór technologii renderowania danych w przeglądarce (View). Do Widoku można użyć dowolnej technologii, takiej jak HTML, JSP, Tapestry, XSLT, JSF lub dowolnej innej takiej technologii. Wzorzec View Resolver zawiera mapowanie różnych widoków. Kontroler zwraca nazwę Widoku, która jest następnie przekazywana do View Resolver w celu wybrania odpowiedniej technologii.
10. W jaki sposób Spring MVC zapewnia obsługę walidacji?
Spring obsługuje przede wszystkim dwa rodzaje walidacji:
- Korzystanie z adnotacji JSR-303 i dowolnej implementacji referencyjnej, na przykład Hibernate Validator lub
- Implementacja interfejsu org.springframework.validation.Validator.
11. Użytkownik otrzymuje błąd walidacji w innych polach po zaznaczeniu pola wyboru, po czym odznacza go. Jaki byłby aktualny status wyboru w obiekcie polecenia Spring MVC? Jak naprawisz ten problem?
Jest to jedno z trudniejszych pytań, na które należy odpowiedzieć, jeśli nie znasz zachowania HTTP Post w Spring MVC.
Podczas HTTP Post, jeśli odznaczysz pole wyboru, HTTP nie będzie zawierał parametru żądania dla pola wyboru – co oznacza, że zaktualizowany wybór nie zostanie pobrany. Aby to naprawić, możesz użyć ukrytego pola formularza, które zaczyna się od '_'.
Jak odnieść sukces w swojej pierwszej pracy programistycznej?
12. Jak porównasz framework MVC z architekturą trójwarstwową?
Architektura trójwarstwowa to styl architektury, podczas gdy MVC jest wzorcem projektowym.
Powiedziawszy to, w większych aplikacjach MVC tworzy warstwę prezentacji w architekturze trójwarstwowej. Model, widok i kontroler dotyczą tylko prezentacji — używają warstwy środkowej do wypełniania swoich modeli.
13. Jak powinniśmy używać JDBC na wiosnę, aby zoptymalizować wydajność?
Spring udostępnia klasę szablonu o nazwie JDBCTemplate . Używanie JDBC z tym szablonem zapewnia rozmaitościom lepszą wydajność.
14. Co rozumiesz przez „fasola” w kontekście Springa?
Każda klasa, która jest inicjowana przez kontener IoC, jest nazywana w Springu fasolą. Cykl życia Spring Bean jest zarządzany przez Spring IoC Container.
15. Czym jest „zakres” w odniesieniu do fasoli wiosennej?
Spring Beans jest dostarczany z następującymi pięcioma zakresami:
- Prototyp : Za każdym razem, gdy pojawia się prośba o fasolę, za każdym razem tworzony jest oddzielny prototyp.
- Żądanie : Jest jak poprzedni zakres, ale tylko dla aplikacji internetowych. Dla każdego żądania HTTP Spring tworzy nową instancję bean.
- Singleton : dla każdego kontenera tworzony jest tylko jeden ziarno, który działa jako domyślny zakres tego ziarna. We wszystkich tych przypadkach ziarna nie mogą korzystać ze wspólnej zmiennej instancji, ponieważ może to prowadzić do niespójności danych.
- Sesja : Fasola jest tworzona dla każdej sesji HTTP
- Sesja globalna : Sesja globalna jest tworzona dla aplikacji portletowych.
Framework Spring jest rozszerzalny, co oznacza, że możesz również stworzyć swój własny zakres. Atrybut „scope” elementu bean służy do zdefiniowania zakresu.
Jak zostać programistą Full Stack
Podsumowanie…
Chodziło o pytania i odpowiedzi, które trzeba znać podczas wywiadu Springa, krążące wokół frameworka Spring – a konkretnie Spring MVC. Jeśli jesteś programistą Java i chcesz zacząć korzystać ze Springa, nie może być lepszego czasu! Przeczytaj więcej, jeśli szukasz pytań do rozmowy kwalifikacyjnej w języku Java.
Poświęć trochę swojego cennego czasu, aby zdobyć pytania do rozmowy kwalifikacyjnej Java Spring, a będziesz gotowy. Organizacje poszukują programistów, którzy dobrze znają ten framework – dzięki funkcjom, które ma do zaoferowania.

Zapisz się na kursy inżynierii oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
