Le 35 migliori domande e risposte per le interviste di primavera: Guida definitiva 2022
Pubblicato: 2021-01-08Hai una prossima intervista relativa a Spring Framework? Forse sei arrivato su questa pagina perché stai cercando le principali domande dell'intervista di Spring Framework . Nel nostro blog, discuteremo le domande e le risposte più poste alle interviste di primavera.
Se li attraversi, è probabile che ti esibirai in modo incredibile durante il tuo colloquio. Prima di iniziare, lascia che ti diamo una breve descrizione della domanda complessiva di Spring Framework nel mercato attuale.
Leggi: Gli sviluppatori full stack richiedono in India
Spring rende il linguaggio di programmazione Java più veloce, più semplice e sicuro per tutti. Il suo obiettivo principale è la velocità, ma è semplice e produttivo. Per questo motivo, è diventato uno dei framework Java più popolari al mondo. Le biblioteche sono flessibili e affidabili. Viene utilizzato in molti luoghi come lo shopping online, le auto connesse e le tecnologie più innovative.
Si vanta anche dei suoi contributi a grandi giganti come Amazon, Google e Alibaba. Inoltre, la community di Spring è enorme. Comprende tutte le fasce d'età ed è molto vario. Troverai ottime risorse e supporto online per passare al livello successivo semplificando il tuo viaggio.
Se sei un programmatore Java, allora Spring Framework è fondamentale per te. Molte aziende richiedono al programmatore di comprendere Spring Framework o almeno di conoscere alcuni dei suoi moduli.

Ecco alcune delle principali domande e risposte per le interviste primaverili che puoi aspettarti che il tuo intervistatore chieda.
Sommario
Domande e risposte all'intervista di primavera 2020
D.1 Quali sono le diverse versioni che puoi trovare di Spring Framework e quali sono le loro caratteristiche principali?
Le tre versioni sono Spring 2.5, Spring 3.0 e Spring 4.0.
La primavera 2.5 è stata la prima versione a supportare le annotazioni. È stato rilasciato nell'anno 2007. Spring 3.0 utilizzava aggiornamenti in Java5 e offriva inoltre aiuto a JEE6. È stato rilasciato due anni dopo, nel 2009. La primavera 4.0 è stata la variante principale per offrire un supporto completo a Java 8. È stato rilasciato nell'anno 2013.
Q.2 Descrivere o definire Spring Framework
È una piattaforma Java open source. Viene utilizzato come opzione per le tecnologie Java aziendali pesanti. Per dirla in parole povere, semplifica lo sviluppo Java perché è leggero. Gli sviluppatori possono sviluppare applicazioni utilizzando Spring Framework e distribuirle anche su computer con memoria e risorse CPU limitate. Inoltre, offre supporto a vari altri framework inclusi, a titolo esemplificativo, Tapestry, JSF, EJB, Hibernate, Struts e altri.
Leggi: Idee e argomenti per progetti a stack completo
D.3 Quali sono i vantaggi dello Spring Framework?
- Spring Framework è un open source e non ha alcun blocco del fornitore.
- Puoi usare solo ciò di cui hai veramente bisogno a causa dell'architettura a strati che utilizza.
- Spring Framework utilizza POJO, il che rende molto più semplice il test delle applicazioni.
- Puoi usarlo con tutti gli altri framework di Java con Spring Frameworks. Non impone alcuna restrizione o limitazione.
- Spring Framework è un framework modulare. È molto flessibile.
D.4 Quali sono le varie caratteristiche dello Spring Framework?
- Leggero: Spring Framework è leggero quando parliamo della sua trasparenza e dimensione.
- Inversione del controllo: è il principio in cui il flusso di controllo di un programma viene capovolto. Qui, le fonti esterne come servizi, framework e altri componenti controllano il flusso di un programma invece del programmatore.
- Programmazione orientata all'aspetto: la programmazione orientata all'aspetto in primavera supporta lo sviluppo dell'associazione suddividendo i servizi di sistema dalla logica aziendale dell'applicazione.
- Contenitore: il contenitore è il fulcro di Spring Framework. È il contenitore che crea gli oggetti, li lega, li configura ed è responsabile del loro ciclo di vita completo, che va dalla creazione fino alla fine.
- Framework MVC: il framework dell'applicazione Web MVC di Spring Framework è facile da usare ed è configurabile. Puoi usare altri framework invece di scegliere Spring MVC Framework.
- Gestione delle transazioni: Spring Framework utilizza un livello di astrazione generico per la gestione delle transazioni. Puoi utilizzare il supporto per le transazioni di Spring in ambienti con meno contenitori.
- Gestione delle eccezioni JDBC: non è necessario gestire in modo esplicito le eccezioni relative al database. Spring JDBC Framework lo gestisce utilizzando la gestione delle eccezioni JDBC.
Leggi: Domande sull'intervista agli sviluppatori Full Stack
D.5 Quanti moduli puoi trovare in Spring Framework? Nominali.
Puoi trovare venti moduli suddivisi in Core Container, Web, Data Access/Integration, AOP (Aspect Oriented Programming), Instrumentation e Test.
Spring Core Container: come suggerisce il nome, è il core container di Spring Framework. Si compone di
- Nucleo di primavera
- Fagiolo primaverile
- Linguaggio di espressione primaverile
- Contesto primaverile
Web: questo livello fornisce supporto per creare un'applicazione Web. Si compone dei seguenti moduli:
- ragnatela
- Web – MVC
- Web – Presa
- Web – Portlet
Accesso/integrazione dei dati: questo livello fornisce supporto per comunicare con il database. Si compone dei seguenti moduli:
- Connettività Java DataBase – JDBC
- Mappatura relazionale degli oggetti – ORM
- Mapper XML di oggetti – OXM
- Servizio di messaggistica Java – JMS
- Transazione
Programmazione orientata all'aspetto: in questo livello, gli sviluppatori possono utilizzare tagli di punti, consigli, ecc. per disaccoppiare il codice.
Strumentazione: questo livello fornisce supporto alle implementazioni del caricatore di classi e alla strumentazione di classe.
Test: questo livello fornisce supporto per i test con TestNG e Junit.
Puoi anche trovare altri nodi vari come:
Messaggistica: questo modulo offre assistenza per STOMP. Aiuta anche come modello di programmazione delle annotazioni necessario per l'instradamento e l'elaborazione dei messaggi STOMP dai client WebSocket.
Aspetti: questo modulo offre supporto per l'integrazione con AspectJ.
D.6 Che cos'è un file di configurazione di Spring?
È fondamentalmente un file XML. Puoi trovare tutte le informazioni sulle classi in questo file. Descrive ulteriormente come queste classi sono configurate e conosciute tra loro. I file di configurazione XML sono dettagliati, quindi è necessario mantenerli puliti. Altrimenti, gestirli diventa difficile se il tuo progetto è grande.
Q.7 Descrivere i diversi componenti di un'applicazione Spring.
Tipicamente, un'applicazione Spring comprende i seguenti componenti:
- Interfaccia: tutte le funzioni sono definite nell'interfaccia.
- Classe Bean: puoi trovare le proprietà qui insieme alle funzioni set e get.
- Spring Aspect-Oriented Programming (AOP): fornisce la funzionalità di problemi trasversali.
- File di configurazione del bean: questo file contiene i dettagli delle classi e come configurarle.
- Programma utente: un programma utente utilizza la funzione.
D.8 Spiegare i vari modi di utilizzare Spring Framework
Spring Framework può essere utilizzato in diversi modi come:
- Spring Framework può essere utilizzato come un'applicazione Web Spring completa.
- Spring Framework può essere utilizzato come framework Web di terze parti, utilizzando il livello intermedio di Spring Frameworks.
- Spring Framework può essere utilizzato per l'utilizzo remoto.
- Spring Framework può essere utilizzato come Enterprise Java Bean, che può avvolgere POJO esistenti.
D.9 Che cos'è il contenitore Spring IOC?
Il contenitore è al centro di Spring Framework. È il contenitore che crea gli oggetti, li lega, li configura ed è responsabile del loro intero ciclo di vita, che va dalla creazione fino alla fine.
Il contenitore Spring utilizza l'inserimento delle dipendenze per gestire i componenti che creano un'applicazione. Il contenitore ottiene le indicazioni per gli oggetti da creare, impostare e chiamare leggendo i metadati di configurazione forniti dalle annotazioni Java, dal codice Java o da un XML.
D.10 Che cos'è un'iniezione di dipendenza?
In Dependency Injection, invece di creare oggetti, li descrivi semplicemente su come crearli. Gli sviluppatori devono descrivere quali servizi sono richiesti da un particolare componente nel file di configurazione. Non è necessario connettere direttamente i servizi ai componenti nel codice. Sono collegati insieme dal contenitore Spring IoC.
Q.11 In quanti metodi è possibile eseguire l'iniezione di dipendenza?
Esistono tre modi in cui viene eseguita l'iniezione di dipendenza:
- Iniezione del costruttore
- Iniezione di setter
- Iniezione di interfaccia
Tuttavia, in Spring Framework, vengono utilizzate solo l'iniezione del costruttore e l'iniezione del setter.
Q.12 Cosa rende l'iniezione del costruttore diversa dall'iniezione del setter.
Iniezione del costruttore | Iniezione di setter |
Non c'è iniezione incompleta o limitata. | Può esserci un'iniezione incompleta o limitata. |
Non sovrascrive la proprietà setter. | Sostituisce la proprietà del costruttore. |
Crea una nuova istanza se vengono apportate modifiche. | Non crea alcuna nuova istanza se viene apportata una modifica. |
Funziona meglio per molte proprietà. | Funziona meglio per un minor numero di proprietà. |
D.13 Quanti tipi di contenitori IOC sono disponibili in primavera?
In genere puoi trovare due contenitori IOC, vale a dire:
- BeanFactory: BeanFactory è una sorta di classe factory che comprende un gruppo di bean. Istanzia il bean ogni volta che viene richiesto dai client.
- ApplicationContext: l'interfaccia ApplicationContext viene creata sopra l'interfaccia BeanFactory. Offre alcune funzionalità extra, oltre a quella fornita da BeanFactory.
Q.14 Parlaci di alcune differenze tra BeanFactory e ApplicationContext.
Fabbrica di fagioli | ApplicationContext |
È un'interfaccia spiegata in org.springframework.beans.factory.BeanFactory | È un'interfaccia spiegata in org.springframework.context.ApplicationContext |
Usa l'inizializzazione Lazy | Usa l'inizializzazione aggressiva |
Fornisce in modo esplicito un oggetto risorsa usando la sintassi | Crea e gestisce autonomamente gli oggetti risorsa |
Non aiuta l'internazionalizzazione | Aiuta l'internazionalizzazione |
Non aiuta la dipendenza basata su annotazioni | Aiuta la dipendenza basata su annotazioni |
D.15 Quali sono alcuni vantaggi dell'IoC?
Alcuni dei vantaggi di IoC sono:
- Ridurrà la quantità di codice necessaria nella tua applicazione.
- La tua applicazione è molto più facile da testare perché non ha bisogno di singleton o meccanismi di ricerca JNDI nei tuoi casi di test unitari.
- Incoraggia l'accoppiamento sciolto con il minimo sforzo e il meccanismo meno invadente.
- Aiuta l'istanza desiderosa e il caricamento pigro dei servizi.
D.16 Cosa sono i fagioli primaverili?
Gli Spring Beans sono gli oggetti che fungono da spina dorsale dell'applicazione dell'utente. I fagioli sono controllati dal container Spring IoC. Controllandolo significa che vengono istanziati, configurati, cablati e gestiti da un container Spring IoC. I bean vengono creati utilizzando i metadati di configurazione che gli utenti forniscono al container.
D.17 Come vengono forniti i metadati di configurazione al container Spring?
I metadati di configurazione possono essere forniti al contenitore Spring in uno dei modi:
- Configurazione basata su annotazioni: è possibile utilizzare le annotazioni sulla classe pertinente per descrivere il cablaggio bean nella classe componente stessa. Non è l'impostazione predefinita. Quindi, se desideri usarlo, dovresti abilitarlo nel file di configurazione di Spring prima di poterlo utilizzare.
- Configurazione basata su XML: le dipendenze ei servizi richiesti dai bean sono menzionati nei file di configurazione. Questi sono in un formato XML. Comprendono molte definizioni di bean e opzioni di configurazione specifiche dell'applicazione. In genere iniziano con un tag di fagiolo.
- Configurazione basata su Java: le caratteristiche principali del nuovo supporto per la configurazione Java di Spring Framework sono i metodi annotati @Bean e le classi annotate @Configuration.
D.18 Quanti scope bean supporta Spring?

Supporta cinque ambiti che sono:
- Singleton: questo offre l'ambito per la definizione del bean a una singola istanza per contenitore Spring IoC.
- Prototipo: questo dà la possibilità a una singola definizione di bean di avere un numero qualsiasi di istanze di oggetti.
Gli ambiti seguenti sono disponibili solo se gli utenti utilizzano un ApplicationContext sensibile al Web.
- Richiesta: questo dà spazio per una definizione di bean a una richiesta HTTP.
- Session: questo dà spazio per una definizione di bean a una sessione HTTP.
- Sessione globale: questo dà spazio per una definizione di bean a una sessione HTTP globale.
Q.19 Spiegare il ciclo di vita dei fagioli in Spring Bean Factory Container
- Il contenitore Spring prima istanzia il bean dalla definizione del bean nel file XML.
- Spring usando l'iniezione di dipendenza popola tutte le proprietà.
- La fabbrica chiama setBeanName() fornendo l'ID del bean se il bean esegue l'interfaccia BeanNameAware.
- La factory chiama setBeanFactory() creando un'istanza di se stessa se il bean esegue l'interfaccia BeanFactoryAware.
- Se sono presenti BeanPostProcessors correlati al bean, vengono chiamati i metodi preProcessBeforeInitialization().
- Se il bean specifica il metodo init, viene chiamato.
- Se sono presenti BeanPostProcessors correlati al bean, vengono chiamati i metodi preProcessAfterInitialization().
Q.20 Spiegare il cablaggio Bean
Il cablaggio dei fagioli è quando tutti i fagioli vengono combinati insieme all'interno del contenitore Spring. Il contenitore Spring deve comprendere quali bean sono richiesti e come utilizzare l'iniezione di dipendenza per collegare i bean insieme.
D.21 Che cos'è il cablaggio automatico e denomina le diverse modalità di cablaggio automatico?
Il contenitore Spring ha la capacità di cablare automaticamente le relazioni tra i bean di connessione. The Spring può risolvere automaticamente i collaboratori per il tuo bean vedendo il contenuto di BeanFactory.
Le diverse modalità di cablaggio automatico del bean sono:
- no: questa è l'opzione preselezionata, il che significa nessun cablaggio automatico. È necessario utilizzare un riferimento esplicito al bean per il cablaggio.
- byName: Inietta la dipendenza dell'oggetto in base al nome del bean. Associa e collega le sue proprietà ai bean spiegati dai nomi esatti nel file XML.
- byType: come dice il nome, inserisce la dipendenza dell'oggetto in base al tipo. Corrisponde e collega una proprietà se il tipo corrisponde a uno dei nomi dei bean in un file XML.
- Costruttore: un costruttore inserisce la dipendenza chiamando il costruttore della classe. Ha molti parametri.
- Rilevamento automatico: per impostazione predefinita, il container si collega automaticamente utilizzando un costruttore. Se fallisce, tenta di eseguire il cablaggio automatico per tipo.
D.22 Quali sono le restrizioni o limitazioni del cablaggio automatico?
Ci sono un paio di limitazioni/restrizioni che si devono affrontare usando il cablaggio automatico come:
- Possibilità di sostituzione: utilizzando le impostazioni <constructor-arg> e <property>, è possibile specificare le dipendenze. Sovrascriverà il cablaggio automatico.
- Tipo di dati primitivo: il tipo di dati, le classi e le stringhe primitivi non possono essere cablati automaticamente.
- Natura complicata: il cablaggio esplicito è preferito al cablaggio automatico perché quest'ultimo è di natura confusa.
D.23 Che cos'è la configurazione del contenitore basata su annotazioni?
Un'alternativa alle configurazioni XML, la configurazione del contenitore basata su annotazioni, viene utilizzata per descrivere un cablaggio bean. Lo sviluppatore trasferisce la configurazione nella classe del componente usando le annotazioni sulla dichiarazione del metodo, della classe o del campo.
D.24 Come si attiva il cablaggio delle annotazioni in primavera?
Il cablaggio delle annotazioni è disattivato per impostazione predefinita nel contenitore Spring. Pertanto, per utilizzare il cablaggio basato su annotazioni, è necessario abilitarlo nel file di configurazione di Spring impostando l'elemento <context:annotation-config/>.
D.25 Spiegare la differenza tra le varie annotazioni come @Controller, @Component, @Repository e @Service in Spring?
@Controller: indica una classe come controller Spring Web MVC. Importa automaticamente i bean contrassegnati con esso nel contenitore Dependency Injection.
@Component: indica una classe java come bean. È uno stereotipo generale per qualsiasi componente gestito da Spring. Il processo di scansione dei componenti di Spring può prelevarlo e inserirlo nel contesto dell'applicazione.
@Service: questa annotazione è un'area di annotazione dei componenti. Non ci sono nuovi comportamenti sull'annotazione @Component. Si può usare @Service invece di @Component nelle classi del livello di servizio perché specifica l'intento in modo appropriato.
@Repository: questa annotazione è un'area dell'annotazione @Component. Viene fornito con le stesse funzioni e usi. Tuttavia, offre alcuni vantaggi in più, proprio per i DAO. Ottiene i DAO nel contenitore DI e qualifica le eccezioni non controllate per la traduzione in Spring DataAccessException.
Q.26 Descrivere il supporto di Spring DAO
Il supporto Data Access Object in primavera semplifica l'accesso a tecnologie come Hibernate, JDBC o JDO in modo corretto e stabile. Consente di selezionare una qualsiasi delle tecnologie senza alcun problema. Consente inoltre di codificare senza stressarsi per la cattura delle eccezioni correlate a ciascuna di queste tecnologie.
D.27 Quali classi sono disponibili nell'API JDBC primaverile?
Le classi presenti nell'API JDBC sono:
- Modello Jdbc
- SimpleJdbcTemplate
- NamedParameterJdbcTemplate
- SimpleJdbcInsert
- SimpleJdbcCall
D.28 Quali sono i metodi con cui è possibile accedere a Hibernate utilizzando Spring?
Esistono due metodi con cui è possibile accedere a Hibernate utilizzando Spring:
- Il metodo Inversion of Control con un modello di callback e ibernazione.
- Applicazione di un nodo AOP Interceptor ed estensione di HibernateDAOSupport.
Q.29 Denominare i tipi di gestione delle transazioni supportati da Spring
Spring supporta due tipi di gestione delle transazioni. Loro sono:
- Gestione programmatica delle transazioni: qui la transazione viene controllata con l'aiuto della programmazione. Fornisce una grande quantità di flessibilità. Tuttavia, è difficile da mantenere.
- Gestione delle transazioni dichiarative: qui, la gestione delle transazioni è separata dal codice aziendale. È possibile utilizzare solo annotazioni o configurazioni basate su XML per controllare le transazioni.
Q.30 Descrivere AOP
AOP è noto come programmazione organizzata da Aspect. Si tratta di un sistema di programmazione che consente agli ingegneri del software di modularizzare problemi trasversali o comportamenti che tagliano le divisioni standard degli obblighi. Esempi di problemi trasversali sono la registrazione e la gestione delle transazioni. Il nucleo di AOP è un aspetto . Esemplifica pratiche che possono influenzare varie classi in moduli riutilizzabili.
D.31 Cosa intendi per Aspetto?
L'aspetto è la modularizzazione della preoccupazione, che attraversa più oggetti. Un buon esempio di problemi trasversali in J2EE sarebbero le applicazioni di gestione delle transazioni. Gli aspetti vengono eseguiti utilizzando classi regolari o classi regolari spiegate con l'annotazione @Aspect in Spring Framework.
D.32 Che cos'è un JoinPoint
Un punto in cui viene chiamata l'esecuzione di un programma JoinPoint, ad esempio la gestione di un'eccezione o l'esecuzione di un metodo. In Spring AOP, un JoinPoint rappresenta costantemente l'esecuzione di un metodo.
D.33 Cosa intendi con il framework Spring MVC?
Il framework Spring Web MVC offre un'architettura model-view-controller e componenti pronti per l'uso. Puoi utilizzare questi componenti per creare app Web flessibili e liberamente accoppiate. Il modello MVC consente di isolare i diversi aspetti dell'applicazione come la logica aziendale, la logica di input e la logica dell'interfaccia utente, fornendo un accoppiamento libero tra ciascuno di questi componenti.
Q.34 Descrivere DispatcherServlet

Questo è il nucleo del framework Spring Web MVC. Gestisce tutte le richieste e le risposte HTTP. Il DispatcherServlet ottiene dal file di configurazione la voce della mappatura del gestore e passa la richiesta al controller. Il controller fornisce quindi un oggetto di Model e View. Il DispatcherServlet contrassegna la voce del risolutore di visualizzazione nel file di configurazione e chiama il componente di visualizzazione definito.
Q.35 Spiega WebApplicationContext
Il WebApplicationContext è un aumento del semplice ApplicationContext. Ha alcune funzionalità in più che sono necessarie per le applicazioni web. È diverso da un normale ApplicationContext perché ha la capacità di risolvere temi e decidere a quale servlet è collegato.
Impara i corsi di software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Conclusione
Abbiamo coperto la maggior parte delle principali domande dell'intervista primaverile che vengono poste dall'intervistatore. Se sei interessato a saperne di più e hai bisogno del tutoraggio di esperti del settore, dai un'occhiata allo sviluppo software full-stack del programma Executive PG di upGrad & IIIT Banglore.
Cos'è Java Spring?
Java Spring, sviluppata da Sun Microsystems, è una piattaforma che supporta lo sviluppo di applicazioni. Spring è una raccolta di servizi e API basati su Java che aiutano a scrivere applicazioni scalabili. Spring è un framework di sviluppo di applicazioni open source. Può essere utilizzato con qualsiasi applicazione basata su Java, rendendola così open source. Spring fornisce classi di utilità, gestione delle eccezioni, AOP e interfacce per supportare le applicazioni aziendali. Java Spring è una piattaforma che supporta applicazioni lato server basate su Java e semplifica il processo di sviluppo generale. È una piattaforma altamente flessibile che può essere utilizzata con qualsiasi server basato su Java. Fornisce classi di utilità e servizi di gestione delle eccezioni. Ha un sistema di supporto transazionale e fornisce un facile collegamento con i database.
Cos'è Spring MVC?
Spring MVC (Model View Controller) è un framework di applicazioni Web open source scritto in Java ed è stato sviluppato negli ultimi quattro anni da un team di SpringSource. È sviluppato sulla base dell'API Servlet ed è disponibile per le applicazioni Web Java EE 5 e per le applicazioni Google Web Toolkit. Si integra anche con Spring Data e Spring AOP, quindi puoi usarlo con Hibernate, JPA e programmazione orientata agli aspetti, tra gli altri framework. Spring MVC è altamente configurabile e supporta i principi dell'Inversion of Control (IoC) di Spring. Supporta la creazione di applicazioni Web con stato, in modo da poter mantenere le informazioni sullo stato dell'applicazione tra le richieste.
Cos'è l'ibernazione primaverile?
Hibernate è una libreria di mappatura relazionale a oggetti (ORM) per Java. Hibernate è progettato per gestire la persistenza degli oggetti di classe Java. È un framework ORM potente, leggero ed estremamente portatile. Hibernate è disponibile sotto la GNU Lesser General Public License (LGPL). Spring Data è un progetto all'interno di Spring Framework che fornisce un insieme di componenti per accedere e gestire i dati in modo più orientato agli oggetti utilizzando il familiare paradigma Spring Inversion of Control (IoC). Hibernate è solo un framework ORM. Spring Data, d'altra parte, è uno sforzo per creare un livello di astrazione su vari meccanismi di archiviazione come database relazionale, NoSQL, file flat ecc.