25 top spring mvc interview questions
Cele mai populare întrebări de interviu MVC de primăvară cu răspunsuri pentru candidații la nivel de intrare și cu experiență:
Spring este un cadru puternic care este utilizat în întreaga lume de către dezvoltatorii Java pentru a dezvolta aplicația Web Java Enterprise.
Spring MVC Standuri pentru vizualizare model și controler. La fel ca alte Struts de cadru, Spring se bazează, de asemenea, pe tehnologiile J2EE, care sunt JSP și Servlet, împreună cu implementarea modelului de proiectare Model, View și Controller.
Aici vom explora cele mai frecvente întrebări de interviu Spring MVC cu exemple.
Ce veți învăța:
diferența dintre testul unitar și testul de integrare
Arhitectura MVC de primăvară
Arhitectura MVC are multe clase și componente încorporate, care sunt întotdeauna disponibile pentru dezvoltatori pentru a dezvolta o aplicație puternică și cuplată slab.
Cuplat slab înseamnă că nu ar trebui să existe dependențe hard-codificate între clase. Acest lucru, la rândul său, face sarcina destul de complexă atunci când vine vorba de schimbarea codului sau funcționalității aplicației.
Arhitectura MVC are propriile sale funcții independente. Stratul model include toate clasele POJO și ajută la încapsularea datelor. Stratul de vizualizare este utilizat pentru a reda datele prezente în stratul model și continuă să genereze rezultate în format HTML pentru clientul care le primește de obicei într-un browser web.
În cele din urmă, controlorul este responsabil pentru procesarea cererilor și construirea modelului corect și, prin urmare, trimite răspunsul la stratul de vizualizare sau prezentare.
În acest articol, veți trece prin toate subiectele importante ale Spring MVC, așa cum se menționează mai jos:
- Principiul de lucru al Spring MVC
- Arhitectura de primăvară
- Conceptul de servlet dispecerat
- Cartarea handlerului
- Controlor
- Vizualizați rezolvarea
- Diferite straturi de Spring MVC
- Miezul arcului, avantajele utilizării arcului MVC
- Module de primăvară
- AOP
- Limbaj de expresie
- Stratul de acces la date
- Modul web
- Aspecte
- Test, etc
- Inversia controlului și a injectării dependenței, despre fișierele pom.xml.
Să aruncăm o privire la avantajele și dezavantajele Spring MVC !!
Pro-uri de primăvară MVC
Mai jos sunt enumerați diferiții profesioniști ai Spring MVC:
- Deoarece este foarte mic, oferă performanțe ridicate cu mai puține probleme.
- Are o productivitate ridicată care, la rândul său, mărește dezvoltarea.
- Este extrem de sigur deoarece folosește Spring SPI și este utilizat în principal de toate băncile pentru aplicațiile lor web.
- Putem dezvolta aplicații modulare, deoarece acceptă Model View și arhitectura controlerului.
- Suportă dezvoltarea completă testată, ceea ce este prea bun.
- Până acum, este cel mai potrivit pentru dezvoltatorii de aplicații web de dezvoltare agilă din întreaga lume.
- Are o caracteristică de responsabilitate și separare a rolurilor care simplifică sarcinile.
- Oferă suport pentru servicii RESTful.
- Suportă teme, internaționalizare, alte cadre de baze de date, JPA, vizualizări multiple și suport comunitar.
Contra de Spring MVC
Oferiți mai jos câteva dintre Contra MVC de primăvară:
- Curba de învățare a cadrului Spring și arhitectura sa MVC este puțin complexă pentru dezvoltatori, deoarece are puține concepte complexe.
- Primăvara are o natură în schimbare, cum ar fi cele bazate pe XML sau bazate pe adnotări, care la rândul lor devine dificil de urmărit uneori.
- Specificații foarte puține în Spring MVC.
- Dacă fișierul jar nu este disponibil, atunci aplicația nu va rula corect.
- Probleme foarte mari de configurare, multe controlere de gestionat, multe rezolvări de vizualizare de control etc.
Cele mai importante întrebări de interviu de primăvară MVC
Mai jos sunt enumerate cele mai importante întrebări de interviu pentru Spring MVC. Încercați să obțineți conceptul fiecărei întrebări, astfel încât să vă fie de mare ajutor pentru a explica intervievatorului. Încercați întotdeauna să dați sau să corelați cu exemple de aplicații în timp real. Acestea sunt utile și pentru profesioniștii cu experiență.
Q # 1) Ce este Spring Framework și de ce este atât de popular?
Răspuns: Spring Framework este un cadru ușor care este utilizat pentru a dezvolta aplicații web Java cuplate slab.
Oferă un container încorporat, injecție de dependență și arhitectură MVC. Este foarte popular deoarece permite decuplarea, reutilizarea și oferă modele de proiectare cum ar fi singleton, fabrică pentru a reduce lungimea codului etc. și, de asemenea, elimină conexiunile slabe și are o integrare puternică cu terța parte.
Q # 2) Ce este Spring MVC?
Răspuns: Spring MVC urmează conceptul de model, vizualizare și controler.
Este o instanță a unui controler care este partajat singur și, de asemenea, ajută la gestionarea mai multor cereri care se execută în containerele de inversiune a controlului, cum ar fi interceptorii și controlerele. Modelul Spring MVC ajută la separarea aspectelor aplicației, care include logica de intrare, de afaceri și de prezentare.
Î # 3) Care sunt caracteristicile de bază ale Spring Framework?
Răspuns:
Caracteristicile de bază ale Spring MVC sunt:
- Este capabil să configureze eficient cadrul și clasele ca fasole. De asemenea, împarte rolurile funcționale și responsabilitățile separat.
- Permite definirea unei metode de control nelimitate care face ca aplicația să fie foarte ajustabilă și flexibilă.
- Oferă o personalizare bună pentru maparea handlerului, legarea, rezoluția vizualizării și validările.
- Ajută la transferul modelului folosind o hartă. De asemenea, oferă suporturi pentru viteză, JSTL, JSP, iar utilizatorul poate personaliza rezoluția locală și tema.
- Spring are propria sa bibliotecă de etichete, ceea ce îl face mai flexibil și acceptă legarea datelor, teme, fasole cu ciclu de viață până la cererea HTTP.
Q # 4) Explicați conceptul Servletului Dispecer.
Răspuns: Servletul Dispatcher este servletul central principal care gestionează toate cererile și răspunsurile HTTP primite. Are integrare cu Spring IOC și, prin urmare, permite utilizarea tuturor caracteristicilor Spring.
Odată ce servletul dispecerat primește o cerere, acesta îl redirecționează către maparea handlerului pentru obținerea unui controler adecvat, iar acum controlorul va apela metoda corectă de service și o va trimite din nou la servletul dispecer.
Din nou, servletul trimite cererea către rezolvatorul de vizualizare pentru a obține vizualizarea necesară și apoi trimite răspunsul către browserul clientului.
Exemplu de cod pentru a arăta utilizarea servletului de dispecer:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
Q # 5) La ce folosește ContextLoaderListner în Spring MVC?
Răspuns: Este folosit pentru a citi și analiza fișierul de configurare Spring și pentru a procesa încărcarea fasole în acel fișier de configurare.
Exemplu de cod:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Q # 6) Explicați clasa controlerului frontal al Spring MVC.
Răspuns: Controlerul frontal este responsabil să gestioneze întreaga cerere de intrare a unei aplicații. În Spring MVC, servletul dispecerat acționează ca un controler frontal și gestionează toate solicitările primite.
Q # 7) Explicați funcția @Autowired Annotation.
Răspuns: Adnotarea @Autowired este responsabilă pentru injectarea unui bob după tipul său, împreună cu câmpurile și metodele. Prin aceasta, ajutăm cadrul de primăvară la rezolvarea și injectarea boabelor colaboratoare în boabele noastre.
Exemplu:
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(); } }
Q # 8) Care este funcția adnotării atributului modelului?
Răspuns: Adnotarea @ModelAttribute joacă un rol vital în cadrul Spring MVC. Este responsabil pentru parametrul metodei de legare cu atributul modelului respectiv și apoi îl afișează în pagina de prezentare.
Depinde, de asemenea, de ceea ce folosește dezvoltatorul în adnotarea atributului model . Dacă este utilizată la nivel de metodă, indică faptul că metoda este responsabilă pentru adăugarea atributelor. Când este utilizat ca parametru, indică faptul că valoarea parametrului trebuie recuperată din stratul model.
Q # 9) Explicați conceptul și funcția variabilei de cale.
Răspuns: @PathVariable este o adnotare care este utilizată ca parametru în metoda handler pentru extragerea valorii șablonului URI.
Exemplu:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
Q # 10) Care este funcția adnotării @RequestBody?
Răspuns: Adnotarea @RequestBody este responsabilă pentru legarea solicitării corpului HTTP la un obiect de domeniu. Solicitarea HTTP primită este de-serializată automat către obiectul Java de către Spring cu ajutorul convertoarelor de mesaje HTTP.
Q # 11) Care este funcția adnotării @ResponseBody?
Răspuns: Atunci când adnotarea @ResponseBody este utilizată în controlerul MVC, aceasta indică faptul că dezvoltatorul trebuie să scrie un tip de returnare a metodei declarate direct în corpul de răspuns HTTP. Aici, invocarea modelului nu este necesară, iar numele vizualizării nu este interpretat de Spring.
Q # 12) De ce avem nevoie de View Resolver în Spring MVC și ce este un resolver de vizualizare intern în Spring?
Răspuns: View Resolver este responsabil pentru redarea modelelor în browserul web. Nu necesită tehnologii de vizualizare specifice, cum ar fi JSP, XML și Velocity etc.
„InternalResourceViewResolver” este rezolvatorul de vizualizare intern din Spring MVC.
Există câteva rezolvări importante de vizualizare în Spring MVC, după cum se menționează mai jos:
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotiatingViewResolver etc.
Q # 13) Explicați principiul de lucru al cadrului MVC de primăvară.
Răspuns:
Diagrama de mai jos vă va ajuta să înțelegeți fluxul:
După cum știm, se bazează pe conceptul de model, vizualizare și controler. Dispatcher Servlet primește cererea HTTP în funcție de maparea servletului efectuată în web.xml.
Odată ce solicitarea este primită de Servlet Dispatcher, aceasta trimite aceeași cerere către maparea handlerului pentru a obține clasa de controler necesară. Maparea handlerului este menționată în fișierul de configurare Spring.
Din nou, cererea este trimisă controlerului, iar controlerul procesează cererea și metoda și trimite înapoi obiectul de vizualizare model cerut la servletul dispecer.
Acum, cererea este trimisă rezolvatorului de vizualizare de către un servlet pentru a obține prezentarea paginii de vizualizare.
În cele din urmă, Dispatcher Servlet trece modelul la pagina de prezentare și același lucru este redat unui browser client.
Q # 14) Care este scopul utilizării BindingResults?
Răspuns: BindingResults este una dintre interfețele din primăvară care intră sub pachet org. Springframework .validare și este utilizat pentru a reprezenta rezultatele legării.
Acesta joacă un rol util în detectarea erorilor din formularele trimise. Are un proces de invocare simplu și ușor. Dezvoltatorul trebuie să aibă în vedere să pună rezultatul legării ca parametru imediat după validarea obiectului.
Sintaxă:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }
Aici, cadrul de primăvară va înțelege citind adnotarea @Valid și va încerca să-și găsească validatorul.
Q # 15) Explicați arhitectura Model 1 și Model 2 din Spring Framework.
Răspuns: Acestea sunt cele două modele importante de proiectare pentru dezvoltarea aplicațiilor web.
Modelul 1:
Aici, cererea primită este gestionată de servlet sau de un JSP. Servletul sau pagina JSP este responsabilă pentru gestionarea, procesarea cererii, controlul logicii de afaceri, validarea datelor și, în cele din urmă, pentru generarea răspunsului.
Este simplu și are o arhitectură ușoară și este preferat în cea mai mare parte de industriile la scară mică pentru a dezvolta aplicații simple.
Modelul 2:
Este un model de proiectare important și se bazează pe conceptul Model View Controller. Este capabil să separe prezentarea și secțiunea logică care manipulează codul.
Acest model este robust, fiabil și evită duplicitatea. Este bun pentru construirea de aplicații mari și complexe.
Q # 16) Explicați funcția interceptorului Spring MVC împreună cu utilizarea acestuia.
Răspuns: Interceptorii joacă un rol la îndemână în Spring MVC. Acestea sunt folosite pentru a intercepta cererea de la client, pentru a procesa cererea în momente diferite, cum ar fi înainte de gestionarea cererii, după gestionarea cererii și după finalizarea părții de prezentare, adică vizualizarea paginii etc.
Este, de asemenea, utilizat din motive transversale și reduce repetarea manipulatorului de cod, cum ar fi modificarea ulterioară a parametrilor globali în model, jurnalizare etc.
Q # 17) Este permisă utilizarea mai multor fișiere de configurare Spring în Spring MVC?
Răspuns: Da, Spring permite să aveți mai multe fișiere de configurare într-o singură aplicație.
Există în principal două modalități de a realiza acest lucru și aceste modalități sunt menționate mai jos:
(i) Dezvoltatorul trebuie să declare toate fișierele din web.xml folosind parametrul:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii) Dezvoltatorul poate importa fișiere în configurația existentă.
Q # 18) Explicați funcțiile următoarelor adnotări: @Component, @Controller, @Repository, @Service.
Răspuns: Acestea sunt adnotările importante din Spring MVC. Să le aruncăm o privire.
@Componentă: Această adnotare este responsabilă pentru conversia unei clase java în bean, astfel încât să poată fi recunoscută de Spring și utilizată în contextul aplicației.
Sintaxă:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@Repertoriu: Această adnotare are aceeași utilizare ca cea a @Component, dar în plus, ia în considerare și excepțiile nebifate care pot fi utilizate în primăvară.
@Serviciu: Această adnotare convertește, de asemenea, clasa java în bean, dar este mai bine să utilizați adnotarea @service decât @component, deoarece oferă specificații mai bune într-o aplicație în timp real.
@Controlor: Dacă vrem să facem orice clasă ca controler, atunci trebuie să specificăm această adnotare.
Q # 19) Care este rolul rezolvatorului Multipart și când este folosit?
Răspuns: Multipart Resolver este responsabil pentru încărcarea fișierului într-o aplicație web. Două implementări pentru acesta sunt commonsMultipartResolver și StandardServletMultipartResolver.
Q # 20) Cum oferă Spring MVC suport pentru validare?
Răspuns: Spring oferă suport pentru validare în două moduri - adică în principal prin utilizarea adnotării JSR 303 și a interfeței Validator.
Q # 21) Cum se realizează localizarea în aplicațiile web Spring MVC?
Răspuns: Spring MVC este configurat cu LocaleResolver pentru a sprijini atât internaționalizarea, cât și localizarea. Pentru a face acest lucru posibil, unele fasole trebuie înregistrate așa cum se menționează mai jos.
SessionLocaleResolver - Este nevoie de ajutorul atributelor deja definite în sesiunea de utilizator pentru rezolvarea localizărilor.
Sintaxă:
LocaleChangeInterceptor - Este util atunci când există un parametru prezent în cererea primită.
cum se implementează coada în java
Sintaxă:
Q # 22) Explicați conceptul de context al aplicației rădăcină în Spring MVC împreună cu procesul de încărcare.
Răspuns: ContextLoaderListner este cunoscut ca contextul aplicației rădăcină în Spring MVC și este utilizat de aplicația completă.
Este un ascultător care ajută Spring MVC să pornească. Este utilizat pentru încărcarea și crearea aplicațieiContext, pentru a evita scrierea unui cod explicit. Bobul de primăvară este definit în contextul aplicației.
În general, dispatcherServlet este utilizat pentru specificarea servletelor în Spring MVC.
Q # 23) Care este rolul web.xml în Spring MVC și unde se află?
Răspuns: În web.xml, configurăm ContextLoaderListner. Când implementăm aplicația, o instanță este creată de containerul Servlet pentru ContextLoaderListner și apoi duce la încărcarea webApplicationContext.
Q # 24) Descrieți câteva tipuri de returnare ale metodei controlerului.
Răspuns: Unele dintre tipurile importante de returnare ale metodelor controlerului includ String, void, view, ModelAndView, Model, Map, HttpHeaders etc.
Q # 25) Pe ce bază este aleasă o vizualizare în faza de redare?
Răspuns: ViewResolver în arhitectura MVC este responsabil pentru alegerea vizualizării necesare.
Când controlerul trimite răspunsul la servletul dispecer, acesta trimite cererea către rezolvatorul de vizualizare pentru a obține pagina de vizualizare corectă care poate fi trimisă unui browser web client pentru prezentare.
Q # 26) Care este principala diferență între @Requestparam și @PathVariable adnotare?
Răspuns: Aceste adnotări sunt utilizate pentru preluarea de informații și date de pe o adresă URL.
Dar, diferența principală dintre ele este că @Requestparam este utilizat numai pentru a prelua parametrii de interogare și @PathVariable este utilizat pentru a prelua adresa URL completă.
Q # 27) Explicați conceptul de programare orientată pe aspect?
Răspuns: AOP este o parte importantă a Spring MVC Architecture. AOP este utilizat pentru preocupări transversale și, de asemenea, pentru aplicații, validarea datelor, înregistrarea modulelor, gestionarea tranzacțiilor, autentificare și obiecte.
Există multe părți ale programării orientate pe aspect. Acestea sunt menționate mai jos:
- Aspect: Aspect este responsabil pentru preocupări transversale precum gestionarea tranzacțiilor etc.
- Sfat: Este practic o acțiune și o metodă care se execută și este, de asemenea, utilizată pentru un punct de îmbinare specificat.
- Pointcut: Este responsabil pentru executarea sfaturilor în ceea ce privește expresiile regulate.
- Punctul comun: Este un punct al aplicației pentru procese precum gestionarea excepțiilor, executarea metodei, schimbarea valorilor variabile etc.
- Argumente de consiliere : Aceste argumente sunt folosite pentru trecerea metodelor.
Concluzie
Sper că ați avea o prezentare completă a arhitecturii Spring MVC din acest articol.
Aici, am acoperit fluxul complet de la capăt la fluxul de primăvară MVC, de ce avem nevoie de primăvară MVC? Care sunt diferitele module din arhitectura MVC? Caracteristicile Spring MVC și servletul dispecer, conceptul controlerului frontal, ascultătorilor și funcția acestuia, diferite tipuri de adnotări precum @Autowired, @Controller, @RequestBody etc.
De asemenea, am aflat mai multe despre conceptul View Resolver, procesul AOP și diferitele tipuri de controler, împreună cu utilizările sale. Localizare și interceptori, arhitectură diferită a cadrului Spring și conceptul rezultatului obligatoriu împreună cu utilizările sale.
Am aflat ce este un container de primăvară și utilizarea acestuia în Spring MVC? Utilizarea fișierelor de configurații în Spring MVC, responsabilități variabile Path și importanță. etc Aproape toate întrebările importante și cele mai așteptate ale interviului Spring MVC sunt explicate în acest articol.
Cu toate acestea, este întotdeauna recomandabil să explicați cu exemple de cod în aplicația în timp real pentru a satisface așteptările intervievatorului. Toate codurile necesare pentru fiecare concept sunt acoperite aici pentru înțelegerea dvs. ușoară.
Vă dorim tot binele!
Lectură recomandată
- Întrebări și răspunsuri la interviu
- Cele mai bune 25 de întrebări și răspunsuri de interviu pentru testarea agilă
- 25+ Cele mai populare întrebări și răspunsuri la interviurile ADO.NET
- Câteva întrebări și răspunsuri dificile de testare manuală
- Întrebări și răspunsuri la interviuri de testare ETL
- Întrebări și răspunsuri pentru testarea software-ului (partea 1)
- 40+ Întrebări și răspunsuri la interviuri populare de testare a analistului QA (LISTA 2021)
- Top 25 Întrebări și răspunsuri la interviuri de testare funcțională