25 top spring mvc interview questions
Nejoblíbenější jarní MVC dotazovací otázky s odpověďmi pro vstupní úroveň a zkušené kandidáty:
Jaro je výkonný rámec, který vývojáři Java používají po celém světě k vývoji webové aplikace Java Enterprise.
Pružinové stojany MVC pro zobrazení modelu a ovladač. Stejně jako ostatní rámcové Struts, je Spring také založen na technologiích J2EE, kterými jsou JSP a Servlet, spolu s implementací návrhového vzoru Model, View a Controller.
Zde prozkoumáme nejčastěji kladené otázky z jarního rozhovoru pro MVC s příklady.
Co se naučíte:
fáze cyklu vývoje softwaru, ve které se programování provádí, je:
Jarní architektura MVC
Architektura MVC má mnoho vestavěných tříd a komponent, které jsou vývojářům vždy k dispozici pro vývoj silné a volně spojené aplikace.
Volně spojené znamená, že mezi třídami by neměly existovat žádné pevně zakódované závislosti. To zase dělá úkol docela složitým, pokud jde o změnu kódu nebo funkčnosti aplikace.
MVC architektura má své vlastní nezávislé funkce. Vrstva modelu zahrnuje všechny třídy POJO a pomáhá při zapouzdření dat. Pohledová vrstva se používá k vykreslení dat přítomných ve vrstvě modelu a generuje výstup ve formátu HTML pro klienta, který je obvykle přijímá ve webovém prohlížeči.
Nakonec je správce zodpovědný za zpracování požadavku a sestavení správného modelu a tím odešle odpověď do vrstvy zobrazení nebo prezentace.
V tomto článku projdete všemi důležitými tématy jarního MVC, jak je uvedeno níže:
- Princip fungování Spring MVC
- Jarní architektura
- Koncept servletu dispečera
- Mapování obslužné rutiny
- Ovladač
- Zobrazit řešení
- Různé vrstvy Spring MVC
- Jarní jádro, výhody používání Spring MVC
- Pružinové moduly
- AOP
- Výrazový jazyk
- Vrstva přístupu k datům
- Webový modul
- Aspekty
- Test atd
- Inverze ovládání a vkládání závislostí, o pom.xml souborech.
Pojďme se podívat na klady a zápory jarního MVC !!
Pros jarního MVC
Níže jsou uvedeny různé výhody jarního MVC:
- Protože je velmi malý, poskytuje vysoký výkon a méně problémů.
- Má vysokou produktivitu, což zase zvyšuje vývoj.
- Je vysoce bezpečný, protože používá Spring SPI a je většinou používán všemi bankami pro jejich webové aplikace.
- Můžeme vyvíjet modulární aplikace, protože podporuje Model View a architekturu řadičů.
- Podporuje kompletní Test Driven Development, což je příliš dobré.
- Až dosud je nejvhodnější pro agilní vývoj webových aplikací po celém světě vývojáři.
- Má funkci odpovědnosti a oddělení rolí, která zjednodušuje úkoly.
- Poskytuje podporu pro RESTful služby.
- Podporuje témata, internacionalizaci, další databázové rámce, JPA, více pohledů a podporu komunity.
Nevýhody Spring MVC
Níže uvádíme některé nevýhody Spring MVC:
- Křivka učení jarního rámce a jeho architektury MVC je pro vývojáře trochu složitá, protože má několik složitých konceptů.
- Jaro má měnící se povahu, jako je XML nebo anotace, a to je zase někdy obtížné sledovat.
- Velmi malá specifikace ve Spring MVC.
- Pokud soubor jar není k dispozici, aplikace nebude fungovat správně.
- Velmi velké problémy s konfigurací, mnoho řadičů, které se mají zpracovat, mnoho řadičů zobrazení k ovládání atd.
Nejlepší jarní otázky týkající se rozhovorů s MVC
Níže jsou uvedeny nejdůležitější otázky pro rozhovor pro Spring MVC. Pokuste se získat koncepci každé otázky, aby byla velmi užitečná při vysvětlení tazateli. Vždy se snažte uvést nebo korelovat s příklady aplikací v reálném čase. Jsou užitečné i pro zkušené profesionály.
Otázka č. 1) Co je jarní rámec a proč je tak populární?
Odpovědět: Spring Framework je odlehčený rámec, který se používá k vývoji volně spojených webových aplikací Java.
Poskytuje vestavěný kontejner, vkládání závislostí a architekturu MVC. Je velmi populární, protože umožňuje oddělení, opětovné použití a poskytuje návrhové vzory, jako je singleton, továrna ke snížení délky kódu atd., Odstraňuje také slabá spojení a má silnou integraci s třetí stranou.
Otázka č. 2) Co je Spring MVC?
Odpovědět: Jarní MVC se řídí konceptem Model, View a Controller.
Je to instance řadiče, který je sdílen samostatně a také pomáhá zpracovat několik požadavků, které se provádějí v kontejnerech Inverze řízení, jako jsou zachytávače a řadiče. Jarní vzor MVC pomáhá oddělit aspekty aplikace, které zahrnují vstupní, obchodní a prezentační logiku.
Otázka č. 3) Jaké jsou hlavní rysy jarního rámce?
Odpovědět:
Základní vlastnosti Spring MVC jsou:
- Je schopen efektivně konfigurovat rámec a třídy jako fazole. Rovněž rozděluje funkční role a odpovědnosti samostatně.
- Umožňuje definici metody neomezeného řadiče, díky čemuž je aplikace vysoce nastavitelná a flexibilní.
- Poskytuje dobré přizpůsobení pro mapování obslužné rutiny, vazby, rozlišení zobrazení a ověření.
- Pomáhá přenášet model pomocí mapy. Poskytuje také podporu pro rychlost, JSTL, JSP a uživatel může přizpůsobit národní prostředí a rozlišení motivu.
- Jaro má vlastní knihovnu značek, která je flexibilnější a podporuje datové vazby, motivy, fazole, které mají životní cyklus až po požadavek HTTP.
Otázka č. 4) Vysvětlete koncept servletu Dispečer.
Odpovědět: Dispečer Servlet je hlavní centrální servlet, který zpracovává všechny příchozí požadavky a odpovědi HTTP. Má integraci s Spring IOC, a tak umožňuje využívat všechny funkce Spring.
Jakmile servlet dispečera obdrží požadavek, předá jej mapování obslužné rutiny pro získání příslušného řadiče a nyní řadič zavolá správnou metodu služby a znovu ji odešle zpět na servlet dispečera.
Servlet opět odešle požadavek na rezolver pohledu pro získání požadovaného pohledu a poté odešle odpověď klientskému prohlížeči.
Příklad kódu pro zobrazení využití servletu dispečera:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
Otázka č. 5) Jaké je použití ContextLoaderListneru na jaře MVC?
Odpovědět: Používá se ke čtení a analýze konfiguračního souboru Spring a ke zpracování načítání fazolí v tomto konfiguračním souboru.
Příklad kódu:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Otázka č. 6) Vysvětlete třídu předního řadiče Spring MVC.
Odpovědět: Front Controller je zodpovědný za vyřízení celého příchozího požadavku aplikace. Na jaře MVC servlet dispečera funguje jako přední řadič a zpracovává všechny příchozí požadavky.
Otázka č. 7) Vysvětlete funkci @Autowired Annotation.
Odpovědět: Anotace @Autowired je zodpovědná za vložení fazole podle jejího typu spolu s poli a metodami. Tím pomáhá jarnímu rámci při řešení a vstřikování spolupracujících fazolí do naší fazole.
Pří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) Jaká je funkce anotace Model Attribute?
Odpovědět: @ModelAttribute anotace hraje zásadní roli v rámci Spring MVC. Je zodpovědný za parametr metody vazby s příslušným atributem modelu a poté jej zobrazí na prezentační stránce.
Záleží také na tom, co vývojář používá v anotaci atributu modelu . Pokud se používá na úrovni metody, znamená to, že metoda je zodpovědná za přidání atributů. Když se používá jako parametr, znamená to, že hodnota parametru by měla být načtena z vrstvy modelu.
Otázka č. 9) Vysvětlete koncept a funkci proměnné cesty.
Odpovědět: @PathVariable je anotace, která se používá jako parametr v metodě obslužné rutiny pro extrakci hodnoty šablony URI.
Příklad:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
Otázka č. 10) Jaká je funkce anotace @RequestBody?
Odpovědět: Anotace @RequestBody je zodpovědná za vazbu požadavku těla HTTP na objekt domény. Příchozí požadavek HTTP je Springem automaticky de-serializován na objekt Java pomocí převaděčů zpráv HTTP.
Otázka č. 11) Jaká je funkce anotace @ResponseBody?
Odpovědět: Když se v řadiči MVC použije anotace @ResponseBody, znamená to, že vývojář potřebuje zapsat návratový typ deklarované metody přímo do těla odpovědi HTTP. Tady není vyžadováno vyvolání modelu a název pohledu není Springem interpretován.
Otázka č. 12) Proč potřebujeme View Resolver na jaře MVC a co je interní resolver pohledu na jaře?
Odpovědět: View Resolver je zodpovědný za vykreslování modelů ve webovém prohlížeči. Nevyžaduje žádné konkrétní technologie zobrazení, jako je JSP, XML a Velocity atd.
„InternalResourceViewResolver“ je interní překladač zobrazení v Spring MVC.
Ve Spring MVC jsou některé důležité řešení překladu, jak je uvedeno níže:
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotiatingViewResolver atd.
Otázka č. 13) Vysvětlete pracovní princip Spring MVC Framework.
Odpovědět:
Níže uvedený diagram pomůže pochopit tok:
Jak víme, je založen na konceptu Model, View a Controller. Dispečer Servlet obdrží požadavek HTTP v závislosti na mapování servletu provedeném v souboru web.xml.
Jakmile je požadavek odeslán servletem Dispečer, odešle stejný požadavek do mapování obslužné rutiny, aby získal požadovanou třídu řadiče. Mapování obslužné rutiny je uvedeno v konfiguračním souboru Spring.
Znovu je požadavek odeslán do řadiče a řadič zpracuje požadavek a metodu a odešle zpět požadovaný objekt zobrazení modelu servletu dispečera.
Nyní je požadavek odeslán do resolveru zobrazení servletem, aby se získala prezentace stránky zobrazení.
Nakonec servlet Dispečer předá model na stránku prezentace a totéž se vykreslí do klientského prohlížeče.
Otázka č. 14) Jaký je účel použití BindingResults?
Odpovědět: BindingResults je jedno z rozhraní v Spring, které spadá pod balíček org. Springframework .validace a slouží k reprezentaci výsledků vazby.
Hraje užitečnou roli při zjišťování chyb z odeslaných formulářů. Má jednoduchý a snadný vyvolávací proces. Vývojář musí mít na paměti, aby výsledek vazby dal jako parametr hned po ověření objektu.
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'; }
Tady bude Spring Framework rozumět čtením anotace @Valid a pokusí se najít svého validátoru.
Otázka č. 15) Vysvětlete architekturu Model 1 a Model 2 Spring Framework.
Odpovědět: Toto jsou dva důležité designové modely pro vývoj webových aplikací.
Model 1:
jak porovnávat soubory v linuxu
Zde je příchozí požadavek zpracován servletem nebo JSP. Stránka servletu nebo JSP je zodpovědná za zpracování, zpracování požadavku, řízení obchodní logiky, ověření dat a nakonec za generování odpovědi.
Je to jednoduché a má snadnou architekturu a pro vývoj jednoduchých aplikací je většinou upřednostňováno malými průmyslovými odvětvími.
Model 2:
Jedná se o důležitý designový model a je založen na konceptu Model View Controller. Je schopen oddělit prezentaci a logickou část, která manipuluje s kódem.
Tento model je robustní, spolehlivý a zamezuje duplicitě. Je to dobré pro vytváření velkých a složitých aplikací.
Otázka č. 16) Vysvětlete funkci zachycovače Spring MVC spolu s jeho použitím.
Odpovědět: Interceptory hrají v jarním MVC užitečnou roli. Používají se k zachycení požadavku od klienta, zpracování požadavku v různých časech, jako před zpracováním požadavku, po zpracování požadavku a po dokončení prezentační části, tj. Zobrazit stránku atd.
Používá se také z průřezových záležitostí a snižuje opakování obslužné rutiny kódu, jako je pozdější modifikace globálních parametrů v modelu, protokolování atd.
Otázka č. 17) Je povoleno používat v Spring MVC více konfiguračních souborů Spring?
Odpovědět: Ano, Spring umožňuje mít v jedné aplikaci více konfiguračních souborů.
Existují hlavně dva způsoby, jak toho dosáhnout, a tyto způsoby jsou uvedeny níže:
(i) Vývojář musí deklarovat všechny soubory v souboru web.xml pomocí parametru:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii) Vývojář může importovat soubory do stávající konfigurace.
Otázka č. 18) Vysvětlete funkce následujících anotací: @Component, @Controller, @Repository, @Service.
Odpovědět: Toto jsou důležité anotace v jarním MVC. Pojďme se na ně podívat.
@Komponent: Tato anotace je zodpovědná za převod třídy Java na fazole, aby ji Spring mohl rozpoznat a použít v kontextu aplikace.
Syntax:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@Repository: Tato anotace má stejné použití jako @Component, ale navíc také zohledňuje nekontrolované výjimky, které lze použít na jaře.
@Servis: Tato anotace také převádí třídu java na fazole, ale je lepší použít anotaci @service než @component, protože poskytuje lepší specifikace v aplikaci v reálném čase.
@Ovladač: Pokud chceme vytvořit jakoukoli třídu jako kontrolér, musíme specifikovat tuto anotaci.
Otázka č. 19) Jaká je role vícedílného resolveru a kdy se používá?
Odpovědět: Multipart Resolver je zodpovědný za nahrání souboru do webové aplikace. Dvě implementace pro něj jsou commonsMultipartResolver a StandardServletMultipartResolver.
Otázka č. 20) Jak Spring MVC poskytuje podporu pro ověřování?
Odpovědět: Spring poskytuje podporu ověřování dvěma způsoby - tj. Hlavně pomocí anotace JSR 303 a rozhraní Validator.
Otázka č. 21) Jak je ve webových aplikacích Spring MVC dosaženo lokalizace?
Odpovědět: Spring MVC je nakonfigurován s LocaleResolver pro podporu jak internacionalizace, tak lokalizace. Aby to bylo možné, je nutné některé fazole registrovat, jak je uvedeno níže.
SessionLocaleResolver - Při řešení národních prostředí to vyžaduje pomoc již definovaných atributů v relaci uživatele.
Syntax:
LocaleChangeInterceptor - Je užitečné, když je v příchozím požadavku parametr.
Syntax:
Otázka č. 22) Vysvětlete koncept kontextu kořenové aplikace v Spring MVC spolu s jeho procesem načítání.
Odpovědět: ContextLoaderListner je známý jako kontext aplikace root v Spring MVC a je používán kompletní aplikací.
Je to posluchač, který pomáhá Spring MVC bootstrap. Používá se pro načítání a vytváření applicationContext, aby se zabránilo psaní explicitního kódu. Jarní fazole je definována v kontextu aplikace.
Obecně platí, že dispatcherServlet se používá pro specifikaci servletů v Spring MVC.
Otázka č. 23) Jaká je role web.xml v jarním MVC a kde se nachází?
Odpovědět: V souboru web.xml konfigurujeme ContextLoaderListner. Když nasazujeme aplikaci, instance je vytvořena kontejnerem Servlet pro ContextLoaderListner a poté vede k načtení webApplicationContext.
Otázka č. 24) Popište některé návratové typy metody řadiče.
Odpovědět: Některé z důležitých návratových typů metod řadiče zahrnují String, void, view, ModelAndView, Model, Map, HttpHeaders atd.
Otázka č. 25) Na jakém základě je vybrán pohled ve fázi vykreslování?
Odpovědět: ViewResolver v architektuře MVC je zodpovědný za výběr požadovaného zobrazení.
Když řadič odešle odpověď servletu dispečera, odešle požadavek rezolveru zobrazení pro získání správné stránky zobrazení, kterou lze odeslat klientskému webovému prohlížeči k prezentaci.
Otázka č. 26) Jaký je hlavní rozdíl mezi poznámkami @Requestparam a @PathVariable?
Odpovědět: Tyto anotace se používají k načítání informací a dat z adresy URL.
Ale hlavní rozdíl mezi nimi je, @Requestparam se používá pouze k načtení parametrů dotazu a @PathVariable se používá k načtení úplné adresy URL.
Otázka č. 27) Vysvětlete koncept Aspect Oriented Programming?
Odpovědět: AOP je důležitou součástí Spring MVC Architecture. AOP se používá pro průřezové záležitosti a také pro aplikace, ověřování dat, protokolování modulů, správu transakcí, ověřování a objekty.
Existuje mnoho částí Aspect Oriented Programming. Ty jsou uvedeny níže:
- Aspekt: Aspect je zodpovědný za průřezové záležitosti, jako je správa transakcí atd.
- Rada: V zásadě se jedná o akci a metodu, která se provádí, a používá se také pro zadaný spojovací bod.
- Pointcut: Odpovídá za provádění poradenství ve smyslu regulárních výrazů.
- Společný bod: Jedná se o bod v aplikaci pro procesy, jako je zpracování výjimek, provádění metody, změna hodnot proměnných atd.
- Argumenty rady : Tyto argumenty se používají pro předávání metod.
Závěr
Doufám, že z tohoto článku získáte kompletní přehled architektury Spring MVC.
Zde jsme pokryli kompletní tok toku Spring MVC od začátku do konce, proč potřebujeme Spring MVC? Jaké jsou různé moduly v architektuře MVC? Funkce Spring MVC a servletu dispečera, koncept předního řadiče, posluchače a jeho funkce, různé typy anotací jako @Autowired, @Controller, @RequestBody atd.
Dozvěděli jsme se také více o konceptu View Resolver, procesu AOP a různých typech řadiče spolu s jeho použitím. Lokalizace a interceptory, odlišná architektura jarního rámce a koncept výsledku vazby spolu s jeho použitím.
Zjistili jsme, co je kontejner Spring a jeho použití v Spring MVC? Použití konfiguračních souborů v Spring MVC, Path variabilní odpovědnosti a důležitost. atd. V tomto článku jsou vysvětleny téměř všechny důležité a nejočekávanější otázky týkající se jarních rozhovorů s MVC.
Pro uspokojení očekávání tazatele je však vždy vhodné vysvětlit pomocí příkladů kódu v aplikaci v reálném čase. Všechny kódy potřebné pro každý koncept jsou zde uvedeny pro vaše snadné pochopení.
Přejeme ti všechno nejlepší!
Doporučené čtení
- Dotazy a odpovědi na pohovor
- 25 nejlepších agilních testovacích otázek a odpovědí na rozhovor
- 25+ nejoblíbenějších dotazů a odpovědí na rozhovor s ADO.NET
- Několik složitých otázek a odpovědí na ruční testování
- ETL Testing Interview Otázky a odpovědi
- Otázky a odpovědi k testování softwaru (1. část)
- Více než 40 populárních otázek a odpovědí na rozhovor s analytikem QA [SEZNAM 2021]
- Top 25 Testování funkčnosti Interview Otázky a odpovědi