25 top spring mvc interview questions
Najobľúbenejšie jarné otázky týkajúce sa rozhovorov s MVC s odpoveďami pre uchádzačov na vstupnej úrovni a pre skúsených kandidátov:
Jar je silný rámec, ktorý vývojári Java používajú na celom svete na vývoj webových aplikácií Java Enterprise.
Pružinové stojany pre model MVC a radič. Rovnako ako iné rámce Struts, aj Spring je založený na technológiách J2EE, ktorými sú JSP a Servlet, spolu s implementáciou návrhového vzoru Model, View a Controller.
Na tomto príklade preskúmame najčastejšie kladené otázky týkajúce sa jarných rozhovorov s MVC.
Čo sa dozviete:
najlepší softvér na čistenie počítača
Jarná architektúra MVC
Architektúra MVC má mnoho zabudovaných tried a komponentov, ktoré sú vývojárom vždy k dispozícii na vývoj silnej a voľne prepojenej aplikácie.
Voľne spojené znamená, že medzi triedami by nemali byť pevne zakódované závislosti. To zase robí úlohu dosť zložitou, pokiaľ ide o zmenu kódu alebo funkčnosti aplikácie.
Architektúra MVC má svoje vlastné nezávislé funkcie. Modelová vrstva obsahuje všetky triedy POJO a pomáha pri zapuzdrovaní údajov. Zobrazovacia vrstva sa používa na vykreslenie údajov nachádzajúcich sa v modelovej vrstve a generuje výstup vo formáte HTML pre klienta, ktorý ho zvyčajne prijíma vo webovom prehliadači.
Nakoniec je radič zodpovedný za spracovanie žiadosti a zostavenie správneho modelu, a tým odošle odpoveď do zobrazovacej alebo prezentačnej vrstvy.
V tomto článku sa venujete všetkým dôležitým témam jarného MVC, ktoré sú uvedené nižšie:
- Princíp fungovania Spring MVC
- Jarná architektúra
- Koncept servletu dispečera
- Mapovanie obsluhy
- Kontrolór
- Zobraziť riešenie
- Rôzne vrstvy Spring MVC
- Pružinové jadro, výhody použitia pružiny MVC
- Pružinové moduly
- AOP
- Výrazový jazyk
- Vrstva prístupu k údajom
- Webový modul
- Aspekty
- Skúška atď
- Inverzia kontroly a vloženie závislosti, o súboroch pom.xml.
Pozrime sa na klady a zápory jarného MVC !!
Pros jarnej MVC
Nižšie sú uvedené rôzne výhody jarnej MVC:
- Pretože je veľmi malý, poskytuje vysoký výkon a menej problémov.
- Má vysokú produktivitu, čo zase zvyšuje rozvoj.
- Je vysoko bezpečný, pretože používa Spring SPI, a väčšinou ho používajú všetky banky na svoje webové aplikácie.
- Môžeme vyvíjať modulárne aplikácie, pretože podporuje Model View a architektúru radiča.
- Podporuje kompletný vývoj testom, ktorý je príliš dobrý.
- Doteraz je vývojármi najvhodnejšia pre agilný vývoj webových aplikácií na celom svete.
- Má funkciu zodpovednosti a oddelenia rolí, ktorá zjednodušuje úlohy.
- Poskytuje podporu pre RESTful služby.
- Podporuje témy, internacionalizáciu, ďalšie databázové rámce, JPA, viacnásobné zobrazenia a podporu komunity.
Nevýhody jarnej MVC
Nižšie uvádzame niektoré z nevýhod jarného MVC:
- Krivka učenia sa jarného rámca a jeho architektúry MVC je pre vývojárov trochu zložitá, pretože má niekoľko zložitých konceptov.
- Jar má meniacu sa povahu, ako je napríklad XML alebo anotácia, a to je zasa niekedy ťažké sledovať.
- Veľmi malá špecifikácia na jar MVC.
- Ak súbor jar nie je k dispozícii, aplikácia nebude fungovať správne.
- Veľmi veľké problémy s konfiguráciou, veľa ovládačov, ktoré sa dajú spracovať, mnoho ovládačov rozlíšenia pohľadu, atď.
Najlepšie jarné otázky týkajúce sa rozhovorov s MVC
Nižšie sú uvedené najdôležitejšie otázky týkajúce sa rozhovoru pre jarné MVC. Pokúste sa získať koncepciu každej otázky, aby bola veľmi užitočná pri vysvetľovaní anketárovi. Vždy sa snažte uviesť alebo korelovať s príkladmi aplikácií v reálnom čase. Sú užitočné aj pre skúsených odborníkov.
Otázka č. 1) Čo je jarný rámec a prečo je taký populárny?
Odpoveď: Spring Framework je ľahký rámec, ktorý sa používa na vývoj voľne prepojených webových aplikácií Java.
Poskytuje vstavaný kontajner, vkladanie závislostí a architektúru MVC. Je veľmi populárny, pretože umožňuje oddelenie, opätovné použitie a poskytuje návrhové vzory, ako je napríklad singleton, továreň na zníženie dĺžky kódu atď., Taktiež odstraňuje slabé spojenia a má silnú integráciu s treťou stranou.
Otázka 2) Čo je jarná MVC?
Odpoveď: Jarné MVC sa riadi konceptom Model, View a Controller.
Je to inštancia radiča, ktorá je zdieľaná sama osebe a pomáha tiež vybaviť niekoľko požiadaviek, ktoré sa vykonávajú v kontajneroch Inversion of Control, ako sú zachytávače a radiče. Jarný vzor MVC pomáha oddeliť aspekty aplikácie, ktoré zahŕňajú vstupnú, obchodnú a prezentačnú logiku.
Otázka č. 3) Aké sú základné vlastnosti jarného rámca?
Odpoveď:
Základné vlastnosti Spring MVC sú:
- Je schopný efektívne konfigurovať rámec a triedy ako fazuľa. Samostatne tiež rozdeľuje funkčné úlohy a zodpovednosti.
- Umožňuje definíciu metódy s neobmedzeným počtom ovládačov, vďaka čomu je aplikácia vysoko nastaviteľná a flexibilná.
- Poskytuje dobré prispôsobenie pre mapovanie obslužných rutín, väzby, rozlíšenie pohľadov a validácie.
- Pomáha prenášať model pomocou mapy. Poskytuje tiež podporu pre rýchlosť, JSTL, JSP a používateľ môže prispôsobiť miestne nastavenie a rozlíšenie témy.
- Jar má svoju vlastnú knižnicu značiek, ktorá ju robí flexibilnejšou a podporuje dátové väzby, témy, fazuľa so životným cyklom až po požiadavku HTTP.
Otázka č. 4) Vysvetlite koncept dispečera Servlet.
Odpoveď: Dispečerový servlet je hlavný centrálny servlet, ktorý spracováva všetky prichádzajúce požiadavky a odpovede HTTP. Má integráciu s Spring IOC, a tak umožňuje využívať všetky funkcie Spring.
Keď servlet dispečera prijme požiadavku, pošle ju mapovaniu obslužného programu na získanie príslušného radiča a teraz radič zavolá správnu metódu služby a znova ju odošle späť na servlet dispečera.
Servlet opäť pošle požiadavku na rezolver pohľadov na získanie požadovaného pohľadu a potom odošle odpoveď do prehľadávača klienta.
Príklad kódu na zobrazenie využitia servletu dispečera:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
Otázka č. 5) Aké je použitie nástroja ContextLoaderListner na jar MVC?
Odpoveď: Používa sa na čítanie a analýzu konfiguračného súboru Spring a na spracovanie načítania fazule v tomto konfiguračnom súbore.
Príklad kódu:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Otázka č. 6) Vysvetlite triedu predného ovládača Spring MVC.
Odpoveď: Front Controller je zodpovedný za vybavenie celej prichádzajúcej žiadosti o aplikáciu. Na jar MVC servlet dispečera funguje ako predný radič a vybavuje všetky prichádzajúce požiadavky.
Otázka č. 7) Vysvetlite funkciu @Autowired Annotation.
Odpoveď: Anotácia @Autowired je zodpovedná za vstrekovanie fazule podľa jej typu spolu s poľami a metódami. Týmto pomáha jarný rámec pri riešení a vstrekovaní spolupracujúcich bôbov do našej fazule.
Príklad:
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(); } }
Otázka č. 8) Aká je funkcia anotácie Model Attribute?
Odpoveď: Anotácia @ModelAttribute hrá v rámci jarného MVC dôležitú úlohu. Zodpovedá za parameter metódy väzby s príslušným atribútom modelu a potom ho zobrazuje na prezentačnej stránke.
Závisí to aj od toho, čo vývojár používa v anotácii atribútu modelu . Ak sa používa na úrovni metódy, znamená to, že metóda je zodpovedná za pridanie atribútov. Keď sa používa ako parameter, znamená to, že hodnota parametra by sa mala načítať z modelovej vrstvy.
Otázka č. 9) Vysvetlite koncept a funkciu premennej cesty.
Odpoveď: @PathVariable je anotácia, ktorá sa používa ako parameter v metóde obsluhy na extrakciu hodnoty šablóny URI.
Príklad:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
Otázka č. 10) Aká je funkcia anotácie @RequestBody?
Odpoveď: Anotácia @RequestBody je zodpovedná za viazanie požiadavky tela HTTP na objekt domény. Prichádzajúca požiadavka HTTP je Springom automaticky de-serializovaná na objekt Java pomocou prevádzačov správ HTTP.
Otázka č. 11) Aká je funkcia anotácie @ResponseBody?
Odpoveď: Keď sa v radiči MVC použije anotácia @ResponseBody, znamená to, že vývojár musí zapísať návratový typ deklarovanej metódy priamo do tela odpovede HTTP. Tu sa vyvolanie modelu nevyžaduje a Spring nebude interpretovať názov zobrazenia.
Otázka č. 12) Prečo potrebujeme View Resolver na jar MVC a čo je interný resolver pohľadu na jar?
Odpoveď: View Resolver je zodpovedný za vykreslenie modelov vo webovom prehliadači. Nevyžaduje žiadne konkrétne zobrazovacie technológie ako JSP, XML a Velocity atď.
„InternalResourceViewResolver“ je interný rezolver pohľadu v jarnom MVC.
V aplikácii Spring MVC sú uvedené niektoré dôležité riešenia rozlíšenia:
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotiatingViewResolver atď.
Otázka č. 13) Vysvetlite princíp fungovania jarného MVC rámca.
Odpoveď:
Nasledujúci diagram pomôže porozumieť toku:
Ako vieme, vychádza z konceptu Model, View a Controller. Dispečer Servlet prijíma požiadavku HTTP v závislosti od mapovania servletu vykonaného v súbore web.xml.
Len čo požiadavku prijme servlet dispečera, odošle tú istú požiadavku do mapovania obslužného programu, aby získala požadovanú triedu radiča. Mapovanie obslužných rutín je uvedené v konfiguračnom súbore Spring.
Znova sa požiadavka odošle do radiča a radič spracuje požiadavku a metódu a pošle späť požadovaný objekt zobrazenia modelu na servlet dispečera.
Teraz je servletom odoslaná požiadavka na rezolver pohľadov, aby sa získala prezentácia stránky zobrazenia.
Nakoniec servlet dispečera odovzdá model na prezentačnú stránku a to isté sa vykreslí v klientskom prehliadači.
Otázka č. 14) Aký je účel použitia BindingResults?
Odpoveď: BindingResults je jedno z rozhraní na jar, ktoré patrí pod balík org. Jarné rámy .validácia a používa sa na vyjadrenie výsledkov väzby.
Zohráva užitočnú úlohu pri zisťovaní chýb z odoslaných formulárov. Má jednoduchý a ľahký proces vyvolania. Vývojár musí mať na pamäti, že výsledok väzby musí dať ako parameter hneď po overení objektu.
najlepšia spoločnosť na obnovu dát z pevného disku
Syntax:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }
Jarný rámec tu pochopí prečítanie anotácie @Valid a pokúsi sa nájsť jej validátor.
Otázka č. 15) Vysvetlite architektúru 1 a 2 v architektúre Spring Framework.
Odpoveď: Toto sú dva dôležité dizajnové modely pre vývoj webových aplikácií.
Model 1:
Tu prichádzajúcu požiadavku vybavuje servlet alebo JSP. Stránka servletu alebo JSP je zodpovedná za spracovanie, spracovanie žiadosti, kontrolu obchodnej logiky, validáciu údajov a nakoniec za generovanie odpovede.
Je to jednoduché a má ľahkú architektúru. Na vývoj jednoduchých aplikácií ho väčšinou uprednostňujú malé priemyselné odvetvia.
Model 2:
Je to dôležitý dizajnový model a je založený na koncepcii radiča Model View. Je schopný oddeliť prezentáciu a logickú časť, ktoré manipulujú s kódom.
Tento model je robustný, spoľahlivý a vyhýba sa duplicite. Je to dobré na vytváranie veľkých a zložitých aplikácií.
Otázka č. 16) Vysvetlite funkciu zachytávača Spring MVC spolu s jeho použitím.
Odpoveď: Interceptory hrajú v jarnom MVC užitočnú úlohu. Používajú sa na zachytenie požiadavky od klienta, spracovanie žiadosti v rôznych časoch, napríklad pred spracovaním žiadosti, po vybavení žiadosti a po dokončení prezentačnej časti, tj. Zobraziť stránku atď.
Používa sa tiež pri prierezových problémoch a znižuje opakovanie obsluhy kódu, ako je neskoršia úprava globálnych parametrov v modeli, protokolovanie atď.
Otázka č. 17) Je povolené používať v Spring MVC viac konfiguračných súborov Spring?
Odpoveď: Áno, Spring umožňuje mať v jednej aplikácii viac konfiguračných súborov.
Existujú hlavne dva spôsoby, ako to dosiahnuť, a tieto spôsoby sú uvedené nižšie:
(i) Vývojár musí deklarovať všetky súbory v súbore web.xml pomocou parametra:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii) Vývojár môže importovať súbory do existujúcej konfigurácie.
Otázka č. 18) Vysvetlite funkcie nasledujúcich anotácií: @Component, @Controller, @Repository, @Service.
Odpoveď: Toto sú dôležité anotácie v jarnom MVC. Poďme sa na ne pozrieť.
@ Komponent: Táto anotácia je zodpovedná za prevod triedy java na fazuľa, aby ju mohla Spring rozpoznať a použiť v kontexte aplikácie.
Syntax:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@Úložisko: Táto anotácia má rovnaké použitie ako anotácia @Component, ale okrem toho zohľadňuje aj nekontrolované výnimky, ktoré je možné použiť na jar.
@ Služba: Táto anotácia tiež prevádza triedu java na fazuľu, ale je lepšie použiť anotáciu @service ako @component, pretože poskytuje lepšie špecifikácie v aplikácii v reálnom čase.
@ Kontrolór: Ak chceme vytvoriť akúkoľvek triedu ako kontrolór, musíme špecifikovať túto anotáciu.
Otázka č. 19) Aká je úloha Multipart resolvera a kedy sa používa?
Odpoveď: Multipart Resolver je zodpovedný za nahranie súboru do webovej aplikácie. Dve jeho implementácie sú commonsMultipartResolver a StandardServletMultipartResolver.
Otázka č. 20) Ako poskytuje jarné MVC podporu pre overenie?
Odpoveď: Jar poskytuje podporu overovania dvoma spôsobmi - teda hlavne použitím anotácie JSR 303 a rozhrania Validator.
Otázka č. 21) Ako sa dosahuje lokalizácia vo jarných webových aplikáciách MVC?
Odpoveď: Jarná MVC je nakonfigurovaná s LocaleResolver na podporu internacionalizácie aj lokalizácie. Aby to bolo možné, je potrebné niektoré fazule zaregistrovať, ako je uvedené nižšie.
SessionLocaleResolver - Na riešenie miestnych nastavení vyžaduje pomoc už definovaných atribútov v relácii používateľa.
Syntax:
LocaleChangeInterceptor - Je to užitočné, keď je v prichádzajúcej požiadavke parameter.
Syntax:
Otázka č. 22) Vysvetlite koncept kontextu koreňových aplikácií v jarnom MVC spolu s jeho procesom načítania.
Odpoveď: ContextLoaderListner je vo Spring MVC známy ako kontext koreňovej aplikácie a používa ho úplná aplikácia.
Je to poslucháč, ktorý pomáha jarnému MVC bootstrapovať. Používa sa na načítanie a vytvorenie applicationContext, aby sa zabránilo písaniu explicitného kódu. Jarná fazuľa je definovaná v kontexte aplikácie.
Všeobecne sa na špecifikáciu servletov v jarnom MVC používa DispečerServlet.
Otázka č. 23) Aká je úloha web.xml v jarnom MVC a kde sa nachádza?
Odpoveď: V súbore web.xml konfigurujeme ContextLoaderListner. Keď nasadíme aplikáciu, inštancia je vytvorená kontajnerom Servlet pre ContextLoaderListner a potom to vedie k načítaniu webApplicationContext.
Otázka č. 24) Popíšte niektoré návratové typy metódy radiča.
Odpoveď: Niektoré z dôležitých návratových typov metód radiča zahŕňajú String, void, view, ModelAndView, Model, Map, HttpHeaders atď.
Otázka č. 25) Na základe čoho sa vyberá pohľad vo fáze vykresľovania?
Odpoveď: ViewResolver v architektúre MVC je zodpovedný za výber požadovaného zobrazenia.
Keď radič odošle odpoveď servletu dispečera, odošle požiadavku na rezolver pohľadov na získanie správnej stránky zobrazenia, ktorú je možné odoslať na prezentáciu do webového prehliadača klienta.
Otázka č. 26) Aký je hlavný rozdiel medzi anotáciami @Requestparam a @PathVariable?
Odpoveď: Tieto anotácie sa používajú na načítanie informácií a údajov z adresy URL.
Hlavný rozdiel medzi nimi je však ten, že @Requestparam sa používa iba na načítanie parametrov dotazu a @PathVariable sa používa na načítanie celej adresy URL.
Otázka č. 27) Vysvetlite koncept programovania orientovaného na aspekt?
Odpoveď: AOP je dôležitou súčasťou jarnej MVC architektúry. AOP sa používa na prierezové záležitosti a tiež na aplikácie, overovanie údajov, protokolovanie modulov, správu transakcií, autentizáciu a objekty.
Existuje veľa častí programovania orientovaného na aspekt. Nižšie sú uvedené:
- Aspekt: Spoločnosť Aspect je zodpovedná za prierezové problémy, ako je správa transakcií atď.
- Rada: V zásade ide o akciu a metódu, ktoré sa vykonávajú, a tiež sa používajú pre zadaný spojovací bod.
- Bodový bod: Zodpovedá za vykonávanie rád v zmysle regulárnych výrazov.
- Spoločný bod: Je to bod v aplikácii pre procesy ako spracovanie výnimiek, vykonávanie metódy, zmena hodnôt premenných atď.
- Argumenty týkajúce sa rád : Tieto argumenty sa používajú na odovzdávanie metód.
Záver
Dúfam, že by ste z tohto článku dostali kompletný prehľad architektúry Spring MVC.
Tu sme pokryli kompletný prietok medzi prvkami Spring MVC, Prečo potrebujeme Spring MVC? Aké sú rôzne moduly v architektúre MVC? Vlastnosti jarného MVC a servletu dispečera, koncept predného radiča, poslucháčov a ich funkcií, rôzne typy anotácií ako @Autowired, @Controller, @RequestBody atď.
Dozvedeli sme sa tiež viac o koncepte View Resolver, procese AOP a rôznych druhoch radiča spolu s jeho použitiami. Lokalizácia a zachytávače, odlišná architektúra jarného rámca a koncepcia výsledku väzby spolu s jej využitím.
Dozvedeli sme sa, čo je kontajner Spring a jeho použitie v Spring MVC? Využitie súborov konfigurácií v Spring MVC, zodpovednosť a dôležitosť premenných cesty. atď. Takmer všetky dôležité a najočakávanejšie jarné otázky týkajúce sa rozhovorov s MVC sú vysvetlené v tomto článku.
Vždy je však vhodné vysvetliť pomocou príkladov kódu v aplikácii v reálnom čase uspokojenie očakávaní anketára. Všetky kódy potrebné pre každú koncepciu sú tu uvedené pre vaše ľahké pochopenie.
Prajeme všetko dobré!
Odporúčané čítanie
- Dotazy a odpovede na pohovor
- 25 najlepších otázok a odpovedí na agilné testovacie pohovory
- 25+ najobľúbenejších otázok a odpovedí na rozhovory s ADO.NET
- Niektoré zložité otázky a odpovede na ručné testovanie
- ETL Testovacie otázky a odpovede na pohovor
- Otázky a odpovede na otázky týkajúce sa testovania softvéru (1. časť)
- 40+ populárnych otázok a odpovedí na otázky týkajúce sa testu analytikov QA (ZOZNAM 2021)
- Top 25 funkčných testovacích otázok a odpovedí na pohovory