15 întrebări pe care trebuie să le cunoașteți pentru interviul Spring MVC

Publicat: 2018-03-25

Spring a devenit unul dintre cele mai utilizate framework-uri Java pentru dezvoltarea de aplicații web. Toate noile aplicații Java folosesc în mod implicit Spring core și Spring MVC frameworks. Datorită popularității în creștere, recrutorii de pe tot globul caută candidați practice cu cadrul Spring. Dacă vă prezentați la un interviu pentru un rol de dezvoltator Java, Spring MVC este unul dintre primele lucruri pe care ar trebui să vă perfecționați cunoștințele cu privire la întrebările din interviul cadru Spring – indiferent dacă sunteți mai nou sau cineva cu experiență.

La urma urmei, framework-ul Spring MVC este cel mai frecvent utilizate framework-uri Java și ești obligat să primești întrebări în același timp și în jurul lor, în orice interviu Java (sau orice interviu asociat) la care stai. Dacă nu știai, Spring MVC este un cadru robust bazat pe Java, care ajută la construirea de aplicații web. După cum sugerează și numele, folosește o arhitectură MVC - Model, View, Controller. Spring MVC oferă o modalitate elegantă de utilizare a Spring cu cadrul MVC. Lansat în 2002, framework-ul Spring este un cadru open-source, ceea ce înseamnă că dezvoltatorii din întreaga lume pot contribui la dezvoltarea și lansările ulterioare ale framework-ului.

Învață să construiești aplicații precum Swiggy, Quora, IMDB și multe altele

Asta înseamnă, de asemenea, că există o comunitate mereu activă de dezvoltatori care să te ajute cu întrebările tale. A fi open-source se adaugă, de asemenea, la multitudinea de beneficii pe care le oferă cadrul Spring. Mai ales dacă începeți cu cariera în Java, ați avea nevoie de îndrumare, iar comunitatea diversă de dezvoltatori Java vă asigură că nu vă lipsește nicio îndrumare când vine vorba de lucrul cu Spring MVC.

Cu atât de multe beneficii de oferit, nu ar trebui să existe nicio îndoială cu privire la motivul pentru care Spring MVC este subiectul preferat al unui interviu pentru a te întreba.

În acest articol, vom vorbi despre 15 astfel de întrebări pe care trebuie să le cunoașteți Spring MVC pe care vă puteți aștepta să le întâlniți în orice interviu la care stați.

1. Ce este cadrul Spring?

Spring este un cadru open-source care a fost construit pentru a simplifica dezvoltarea aplicațiilor. Are o structură stratificată care permite dezvoltatorului să fie selectiv cu privire la componentele pe care le utilizează. Are trei componente principale - Spring Core, Spring AOP și Spring MVC.

În plus, poți vorbi despre experiența ta cu Spring, dacă este cazul. Asta va adăuga multă greutate răspunsului tău.

De ce companiile caută să angajeze dezvoltatori Full Stack

2. Care sunt principalele caracteristici ale cadrului Spring?

Spring framework oferă o mulțime de caracteristici pentru a face viața mai ușoară dezvoltatorului. Unii dintre ei sunt:

  • Ușoară: Spring este extrem de ușoară, versiunea de bază este de aproximativ 1 MB, cu cheltuieli de procesare neglijabile.
  • Inversarea controlului (IoC): Injecția de dependență sau inversarea controlului este una dintre cele mai importante caracteristici ale Spring. Folosind IoC, dezvoltatorii nu trebuie să creeze un mediu complet pentru obiect și dependențele acestuia; pot crea și testa pur și simplu obiectul pe care îl manipulează la un moment dat. Dependențe de obiecte vor fi incluse sau apelate atunci când este nevoie.
  • Programare orientată pe aspecte: Spring acceptă programarea orientată pe aspecte. AOP izolează funcțiile secundare de logica de afaceri a programatorului. Acest lucru nu numai că oferă modularitate, ci și face ca codul să poată fi întreținut.
  • Arhitectură MVC: Spring vine cu un cadru MVC pentru aplicații web. Acest cadru este foarte configurabil folosind diverse tehnologii precum JSP, Tiles, iText și POI.
  • Gestionarea excepțiilor JDBC: Spring vine cu un strat de abstractizare JDBC predefinit, care simplifică procesul general de gestionare a excepțiilor.

3. Explicați puțin mai multe despre Dependency Injection.

Inversarea Controlului sau Injectarea Dependenței își propune să simplifice procesul de creare a obiectelor urmând un concept simplu – nu creați obiecte, descrieți doar cum ar trebui să fie create. Folosind IoC, obiectele primesc dependențele lor în timpul construirii de către o entitate externă care este responsabilă de coordonarea fiecărui obiect din sistem. În esență, injectăm dependențe în obiecte folosind IOC sau Dependency Injection.

4. Explicați diferitele tipuri de injecții de dependență în primăvară? Când să folosești pe care?

Spring oferă dezvoltatorilor următoarele două tipuri de injecții de dependență:

  • DI bazat pe constructor: DI bazat pe constructor se realizează prin transmiterea unui număr de argumente (fiecare reprezintă o dependență de altă clasă) către constructorul unei clase. Pur și simplu, dependențele sunt date sub formă de parametri de constructor.
  • DI bazat pe setter: Când lucrați cu un constructor fără argument, veți seta valori trecând argumente prin funcția setter pentru a instanția bean-ul luat în considerare, aceasta se numește injecție de dependență bazată pe setter.

Când veți folosi pe care dintre acestea se rezumă la cerințele dvs. Cu toate acestea, se recomandă utilizarea DI bazată pe setter pentru dependențe opționale și DI bazată pe constructor pentru dependențe obligatorii.
Interviu cu Farooq Adam, co-fondator, Fynd

5. Ce este cadrul Spring MVC?

Spring MVC este una dintre componentele de bază ale cadrului Spring. Vine cu componente și elemente gata de utilizare care ajută dezvoltatorii să construiască aplicații web flexibile și robuste. După cum sugerează și numele, arhitectura MVC separă diferitele aspecte ale aplicației - logica de intrare, logica de afaceri și logica UI. De asemenea, oferă o cuplare liberă între M, V și C ale aplicației.

6. Care sunt unele avantaje ale cadrului Spring MVC față de alte cadre MVC?

Cadrul Spring MVC are unele avantaje clare față de alte cadre. Unele dintre beneficii sunt:

    • Separarea clară a rolurilor – Există un obiect specializat pentru fiecare rol, oferind astfel o separare clară a rolurilor.
    • Cod de afaceri reutilizabil – Cu Spring MVC, nu trebuie să vă duplicați codul. Puteți folosi obiectele existente ca comenzi în loc să le oglindiți pentru a extinde o anumită clasă de bază a cadrului.
    • Legare și validare personalizabile
    • Localizare personalizabilă și rezoluție temei
    • Maparea handlerului personalizabilă și rezoluția vizualizării
  • Începând cu Spring 2.0, cadrul vine cu o bibliotecă de etichete de formulare JSP, care face mult mai ușoară scrierea formularelor în paginile JSP.

7. Ce este DispatcherServlet?

Cadrul Spring MVC este bazat pe cereri și este proiectat în jurul unui Servlet central care se ocupă de toate cererile și răspunsurile HTTP. DispatcherServlet , totuși, face mult mai mult decât atât. Se integrează perfect cu containerul IoC și vă permite să utilizați fiecare caracteristică a Spring.
La primirea unei cereri HTTP, DispatcherServlet consultă HandlerMapping (acestea sunt fișierele de configurare) pentru a apela controlerul corespunzător. Apoi, controlorul apelează metodele de service adecvate pentru a seta datele modelului. De asemenea, returnează numele vizualizării către DispatcherServlet. DispatcherServlet, cu ajutorul ViewResolver, preia vizualizarea definită pentru cerere. Odată ce vizualizarea este finalizată, DispatcherServlet transmite datele modelului către View – unde sunt în cele din urmă redate în browser.
Ce este dezvoltarea bazată pe teste: un ghid pentru începători

8. Care este clasa de control frontal al Spring MVC?

Un controler frontal este un controler care se ocupă de toate solicitările pentru o aplicație Web. Când vine vorba de Spring MVC, DispatcherServlet este acel controler frontal. Când o solicitare web este trimisă către o aplicație Spring MVC, DISpatcherServlet se ocupă de tot. În primul rând, este nevoie de cerere. Apoi, organizează diferitele componente, cum ar fi manipulatorii de solicitări, controlere, soluții de vizualizare și altele - toate necesare pentru a gestiona cererea. Și, în sfârșit, redă conținutul în browser.

9. Ce este un model Viewresolver și cum funcționează în MVC?

View Resolver este un model J2EE care permite aplicațiilor să aleagă dinamic tehnologia de redare a datelor în browser (View). Pentru View poate fi utilizată orice tehnologie precum HTML, JSP, Tapestry, XSLT, JSF sau orice altă asemenea tehnologie. Modelul View Resolver deține maparea diferitelor vederi. Controlerul returnează numele vizualizării, care este apoi transmis View Resolver pentru a selecta tehnologia corespunzătoare.

10. Cum oferă Spring MVC suport de validare?

Spring acceptă în principal două tipuri de validări:

  • Folosind adnotări JSR-303 și orice implementare de referință, de exemplu, Hibernate Validator sau
  • Implementarea interfeței org.springframework.validation.Validator.

11. Un utilizator primește o eroare de validare în alte câmpuri la bifarea unei casete, după care o debifează. Care ar fi starea actuală de selecție în obiectul de comandă al Spring MVC? Cum veți rezolva această problemă?

Aceasta este una dintre întrebările mai dificile la care să răspundeți dacă nu cunoașteți comportamentul HTTP Post în Spring MVC.
În timpul postării HTTP, dacă debifați caseta de selectare, atunci HTTP nu include un parametru de solicitare pentru caseta de selectare - ceea ce înseamnă că selecția actualizată nu va fi preluată. Pentru a remedia acest lucru, puteți utiliza câmpul de formular ascuns care începe cu „_”.
Cum să reușești în primul tău job de dezvoltare software

12. Cum veți compara cadrul MVC cu arhitectura cu trei niveluri?

O arhitectură cu trei niveluri este un stil de arhitectură, în timp ce MVC este un model de design.
Arhitectură pe 3 niveluri cu parte mvc
Acestea fiind spuse, în aplicațiile mai mari, MVC formează nivelul de prezentare al unei arhitecturi cu trei niveluri. Modelul, vizualizarea și controlerul se preocupă doar de prezentare - folosesc nivelul de mijloc pentru a-și popula modelele.

13. Cum ar trebui să folosim JDBC în Spring pentru a optimiza performanța?

Spring oferă o clasă de șablon numită JDBCTemplate . Utilizarea JDBC cu acest șablon oferă mai multor performanțe mai bune.

14. Ce înțelegeți prin „fasole” în contextul cadrului Spring?

Orice clasă care este inițializată de containerul IoC este cunoscută ca bean în Spring. Ciclul de viață al unui Spring Bean este gestionat de Spring IoC Container.

15. Ce este un „Scope” cu referire la fasole de primăvară?

Spring Beans vine cu următoarele cinci domenii:

    • Prototip : ori de câte ori există o solicitare pentru un bean, un prototip separat este creat de fiecare dată.
    • Solicitare : Este ca domeniul anterior, dar numai pentru aplicații bazate pe web. Pentru fiecare solicitare HTTP, Spring creează o nouă instanță bean.
    • Singleton : Există un singur bean creat pentru fiecare container și acționează ca domeniul implicit al acelui bean. În toate aceste cazuri, bean-urile nu pot folosi o variabilă de instanță partajată, deoarece poate duce la inconsecvența datelor.
    • Sesiune : este creat un bean pentru fiecare sesiune HTTP
    • Sesiune globală: Sesiunea globală este creată pentru aplicațiile Portlet.

Cadrul Spring este extensibil, adică vă puteți crea și propriul domeniu de aplicare. Atributul „scope” al elementului bean este utilizat pentru a defini domeniul de aplicare.
Cum să devii un dezvoltator Full Stack

Încheierea…

Acesta a fost totul despre întrebările și răspunsurile care trebuie să știe la interviul Spring, care se învârte în jurul cadrului Spring – și Spring MVC, pentru a fi precis. Dacă ești un dezvoltator Java și dorești să începi cu Spring, nu ar putea fi un moment mai bun! Citiți mai multe dacă căutați întrebări de interviu Java.

Petreceți o parte din timpul dumneavoastră prețios pentru a pune mâna pe întrebările interviului Java Spring și veți fi gata de plecare. Organizațiile caută dezvoltatorii care au o comandă puternică asupra acestui cadru - datorită caracteristicilor pe care le are de oferit.

Înscrieți-vă la cursurile de inginerie software de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Deveniți un dezvoltator Full Stack

UpGrad și IIIT-Bangalore's PG Diploma in Software Development
Aplicați pentru Programul Executive PG în Dezvoltare software de la IIITB