15 Domande da conoscere per l'intervista MVC di primavera
Pubblicato: 2018-03-25Spring è diventato uno dei framework Java più utilizzati per lo sviluppo di applicazioni web. Tutte le nuove applicazioni Java utilizzano per impostazione predefinita i framework Spring core e Spring MVC. Grazie alla sua crescente popolarità, i reclutatori di tutto il mondo sono alla ricerca di candidati pratici con il framework Spring. Se stai partecipando a un colloquio per un ruolo di sviluppatore Java, Spring MVC è una delle prime cose che dovresti rispolverare le tue conoscenze sulle domande del colloquio di Spring Framework, indipendentemente dal fatto che tu sia un principiante o qualcuno con esperienza.
Dopotutto, il framework Spring MVC è il framework Java più comunemente usato e sei destinato a ricevere domande all'interno e intorno allo stesso, in qualsiasi colloquio Java (o qualsiasi intervista correlata) a cui ti siedi. Se non lo sapevi, Spring MVC è un robusto framework basato su Java che aiuta a creare applicazioni web. Come suggerisce il nome, utilizza un'architettura MVC: Model, View, Controller. Spring MVC offre un modo elegante di utilizzare Spring con il framework MVC. Rilasciato nel 2002, il framework Spring è un framework open source, il che significa che gli sviluppatori di tutto il mondo possono contribuire allo sviluppo e alle ulteriori versioni del framework.
Impara a creare applicazioni come Swiggy, Quora, IMDB e altroCiò significa anche che esiste una comunità sempre attiva di sviluppatori là fuori per aiutarti con le tue domande. Essere open source aggiunge anche alla pletora di vantaggi offerti dal framework Spring. Soprattutto se stai iniziando la tua carriera in Java, avresti bisogno di una guida e la variegata comunità di sviluppatori Java ti assicura che non ti manchi alcuna guida quando si tratta di lavorare con Spring MVC.
Con così tanti vantaggi da offrire, non dovrebbe esserci un briciolo di dubbio sul motivo per cui Spring MVC è l'argomento preferito di un'intervista su cui interrogarti.
In questo articolo, parleremo di 15 di queste domande imperdibili di Spring MVC che puoi aspettarti di incontrare in qualsiasi intervista a cui ti siedi.
1. Qual è il quadro di primavera?
Spring è un framework open source creato per semplificare lo sviluppo di applicazioni. Ha una struttura a strati che consente allo sviluppatore di essere selettivo sui componenti che utilizza. Ha tre componenti principali: Spring Core, Spring AOP e Spring MVC.

Inoltre, puoi parlare della tua esperienza con Spring, se presente. Ciò aggiungerà molto peso alla tua risposta.
Perché le aziende stanno cercando di assumere sviluppatori full stack2. Quali sono le caratteristiche principali del framework Spring?
Il framework Spring offre molte funzionalità per semplificare la vita dello sviluppatore. Alcuni di loro sono:
- Leggero: Spring è estremamente leggero, la versione base è di circa 1 MB, con costi di elaborazione trascurabili.
- Inversione del controllo (IoC): l' iniezione di dipendenza o inversione del controllo è una delle caratteristiche più importanti di Spring. Utilizzando IoC, gli sviluppatori non hanno bisogno di creare un ambiente completo per l'oggetto e le sue dipendenze; possono semplicemente creare e testare l'oggetto che stanno gestendo in un determinato momento. Le dipendenze degli oggetti verranno incluse o richiamate in caso di necessità.
- Programmazione orientata agli aspetti: Spring supporta la programmazione orientata agli aspetti. AOP isola le funzioni secondarie dalla logica aziendale del programmatore. Questo non solo fornisce modularità, ma rende anche manutenibile il codice.
- Architettura MVC: Spring viene fornito con un framework MVC per applicazioni web. Questo framework è altamente configurabile utilizzando varie tecnologie come JSP, Tiles, iText e POI.
- Gestione delle eccezioni JDBC: Spring viene fornito con un livello di astrazione JDBC predefinito che semplifica il processo generale di gestione delle eccezioni.
3. Spiega un po' di più sull'iniezione di dipendenza.
Inversion of Control o Dependency Injection mira a semplificare il processo di creazione degli oggetti seguendo un concetto semplice: non creare oggetti, descrivi solo come dovrebbero essere creati. Utilizzando IoC, gli oggetti ricevono le loro dipendenze in fase di compilazione da un'entità esterna responsabile del coordinamento di ogni oggetto nel sistema. In sostanza, stiamo iniettando dipendenze negli oggetti usando IOC o Dependency Injection.
4. Spiega i diversi tipi di iniezioni di dipendenza in primavera? Quando usare quale?
Spring fornisce agli sviluppatori i seguenti due tipi di iniezioni di dipendenza:
- DI basata sul costruttore: la DI basata sul costruttore si ottiene passando un numero di argomenti (ciascuno dei quali rappresenta una dipendenza da un'altra classe) al costruttore di una classe. Semplicemente, le dipendenze vengono fornite sotto forma di parametri del costruttore.
- DI basata su setter: quando si lavora con un costruttore senza argomenti, si impostano i valori passando argomenti tramite la funzione setter per creare un'istanza del bean in esame, questo è chiamato iniezione di dipendenza basata su setter.
Quando utilizzerai quale di questi, dipende dalle tue esigenze. Tuttavia, si consiglia di utilizzare la DI basata su Setter per le dipendenze facoltative e la DI basata su costruttore per le dipendenze obbligatorie.
Intervista a Farooq Adam, co-fondatore, Fynd
5. Che cos'è il framework Spring MVC?
Spring MVC è uno dei componenti principali del framework Spring. Viene fornito con componenti ed elementi pronti per l'uso che aiutano gli sviluppatori a creare applicazioni Web flessibili e robuste. Come suggerisce il nome, l'architettura MVC separa i diversi aspetti dell'applicazione: logica di input, logica di business e logica dell'interfaccia utente. Fornisce inoltre un accoppiamento libero tra M, V e C dell'applicazione.
6. Quali sono alcuni vantaggi del framework Spring MVC rispetto ad altri framework MVC?
Il framework Spring MVC presenta alcuni chiari vantaggi rispetto ad altri framework. Alcuni dei vantaggi sono:
- Chiara separazione dei ruoli – C'è un oggetto specializzato per ogni ruolo, fornendo così una chiara separazione dei ruoli.
- Codice aziendale riutilizzabile : con Spring MVC, non è necessario duplicare il codice. Puoi utilizzare i tuoi oggetti esistenti come comandi invece di eseguirne il mirroring per estendere una particolare classe base del framework.
- Rilegatura e validazione personalizzabili
- Localizzazione personalizzabile e risoluzione del tema
- Mappatura del gestore personalizzabile e risoluzione della vista
- Dalla primavera 2.0 in poi, il framework viene fornito con una libreria di tag di moduli JSP che rende molto più semplice la scrittura di moduli nelle pagine JSP.
7. Che cos'è DispatcherServlet?
Il framework Spring MVC è basato sulle richieste ed è progettato attorno a un servlet centrale che gestisce tutte le richieste e le risposte HTTP. Il DispatcherServlet , tuttavia, fa molto di più di questo. Si integra perfettamente con il container IoC e consente di utilizzare ogni funzionalità di Spring.
Alla ricezione di una richiesta HTTP, il DispatcherServlet consulta HandlerMapping (questi sono i file di configurazione) per chiamare il Controller appropriato. Quindi, il controller chiama i metodi di servizio appropriati per impostare i dati del Modello. Restituisce anche il nome della vista a DispatcherServlet. DispatcherServlet, con l'aiuto di ViewResolver, preleva la vista definita per la richiesta. Una volta finalizzata la vista, il DispatcherServlet passa i dati del modello a View, dove vengono infine visualizzati nel browser.
Che cos'è lo sviluppo basato su test: una guida per principianti
8. Qual è la classe del front controller di Spring MVC?
Un front controller è un controller che gestisce tutte le richieste per un'applicazione Web. Quando si tratta di Spring MVC, DispatcherServlet è quel controller frontale. Quando una richiesta Web viene inviata a un'applicazione Spring MVC, DIspatcherServlet si occupa di tutto. In primo luogo, prende la richiesta. Quindi, organizza i diversi componenti come gestori di richieste, controller, risolutori di viste e simili, tutti necessari per gestire la richiesta. E infine, esegue il rendering del contenuto sul browser.

9. Che cos'è un pattern Viewresolver e come funziona in MVC?
View Resolver è un pattern J2EE che consente alle applicazioni di scegliere dinamicamente la tecnologia per il rendering dei dati sul browser (View). Qualsiasi tecnologia come HTML, JSP, Tapestry, XSLT, JSF o qualsiasi altra tecnologia simile può essere utilizzata per View. Il pattern View Resolver contiene la mappatura di diverse viste. Il Controller restituisce il nome della View che viene poi passato a View Resolver per selezionare la tecnologia appropriata.
10. In che modo Spring MVC fornisce supporto per la convalida?
Spring supporta principalmente due tipi di validazioni:
- Utilizzando le annotazioni JSR-303 e qualsiasi implementazione di riferimento, ad esempio, Hibernate Validator o
- Implementazione dell'interfaccia org.springframework.validation.Validator.
11. Un utente riceve un errore di convalida in altri campi selezionando una casella di controllo, dopodiché la deseleziona. Quale sarebbe lo stato di selezione corrente nell'oggetto comando di Spring MVC? Come risolverai questo problema?
Questa è una delle domande più difficili a cui rispondere se non sei a conoscenza del comportamento di HTTP Post in Spring MVC.
Durante HTTP Post, se deselezioni la casella di controllo, HTTP non include un parametro di richiesta per la casella di controllo, il che significa che la selezione aggiornata non verrà prelevata. Per risolvere il problema, puoi utilizzare il campo modulo nascosto che inizia con '_'.
Come avere successo nel tuo primo lavoro di sviluppo software
12. Come confronterai il framework MVC con l'architettura a tre livelli?
Un'architettura a tre livelli è uno stile architettonico mentre MVC è un modello di progettazione.
Detto questo, nelle applicazioni più grandi, MVC costituisce il livello di presentazione di un'architettura a tre livelli. Il modello, la vista e il controller si occupano solo della presentazione: usano il livello intermedio per popolare i loro modelli.
13. Come dovremmo usare JDBC in primavera per ottimizzare le prestazioni?
Spring fornisce una classe modello chiamata JDBCTemplate . L'uso di JDBC con questo modello offre prestazioni migliori ai collettori.
14. Cosa intendi per "Bean" nel contesto del framework Spring?
Qualsiasi classe inizializzata dal contenitore IoC è nota come bean in Spring. Il ciclo di vita di uno Spring Bean è gestito da Spring IoC Container.
15. Che cos'è un "ambito" in riferimento a Spring Beans?
Spring Beans viene fornito con i seguenti cinque ambiti:
- Prototipo : ogni volta che c'è una richiesta per un fagiolo, ogni volta viene creato un prototipo separato.
- Richiesta : è come l'ambito precedente, ma solo per applicazioni basate sul Web. Per ogni richiesta HTTP, Spring crea una nuova istanza di bean.
- Singleton : viene creato un solo bean per ogni contenitore e funge da ambito predefinito di quel bean. In tutti questi casi, i bean non possono utilizzare una variabile di istanza condivisa in quanto può causare incoerenze dei dati.
- Session : viene creato un bean per ogni sessione HTTP
- Sessione globale: viene creata una sessione globale per le applicazioni Portlet.
Il framework Spring è estensibile, ovvero puoi anche creare il tuo ambito. L'attributo "scope" dell'elemento bean viene utilizzato per definire l'ambito.
Come diventare uno sviluppatore full stack
Avvolgendo…
Si trattava delle domande e delle risposte imperdibili dell'intervista di Spring che ruotavano attorno al framework Spring - e Spring MVC, per essere precisi. Se sei uno sviluppatore Java che cerca di iniziare con Spring, non potrebbe esserci momento migliore! Leggi di più se stai cercando domande per interviste Java.
Trascorri un po' del tuo tempo prezioso per mettere le mani sulle domande dell'intervista Java Spring e sarai a posto. Le organizzazioni sono alla ricerca di sviluppatori che hanno un forte controllo su questo framework, grazie alle funzionalità che ha da offrire.

Iscriviti ai corsi di ingegneria del software dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
