Springboot Flashcards
Cos’è l’Inversion of Control (IoC)?
L’Inversion of Control (IoC) è un principio dell’ingegneria del software che trasferisce il controllo degli oggetti o parti di un programma a un contenitore o framework. Consente al framework di gestire il flusso del programma e di chiamare il codice personalizzato.
Cos’è la Dependency Injection (DI)?
La Dependency Injection (DI) è un pattern che implementa IoC, in cui le dipendenze di un oggetto sono fornite da un assembler anziché essere create dall’oggetto stesso. Questo permette di iniettare le dipendenze esternamente.
Quali sono i vantaggi dell’Inversion of Control (IoC)?
-Decoupling dell’esecuzione di un compito dalla sua implementazione.
-Maggiore modularità del programma.
-Facilità di testare un programma isolando i componenti.
-Possibilità di passare facilmente tra diverse implementazioni.
Quali sono i principali meccanismi per realizzare IoC?
-Strategy Design Pattern
-Service Locator Pattern
-Factory Pattern
-Dependency Injection (DI)
Cos’è il Spring IoC Container?
Il Spring IoC Container è rappresentato dall’interfaccia ApplicationContext. È responsabile dell’instanziazione, configurazione e assemblaggio degli oggetti (beans) e della gestione del loro ciclo di vita.
Come viene configurato il Spring IoC Container?
Il contenitore IoC di Spring può essere configurato utilizzando metadati di configurazione, che possono essere in forma di configurazione XML o annotazioni.
Cos’è la Setter-Based Dependency Injection?
Nella Setter-Based Dependency Injection, il contenitore chiama i metodi setter della classe dopo aver invocato un costruttore senza argomenti o un metodo statico di fabbrica senza argomenti per istanziare il bean.
Cos’è la Constructor-Based Dependency Injection?
Nella Constructor-Based Dependency Injection, il contenitore chiama un costruttore con argomenti rappresentanti le dipendenze da impostare. Le dipendenze vengono risolte principalmente per tipo, seguite dal nome dell’attributo e dall’indice per la disambiguazione.
Cos’è la Field-Based Dependency Injection?
Nella Field-Based Dependency Injection, le dipendenze vengono iniettate contrassegnandole con l’annotazione @Autowired. Spring utilizza la riflessione per iniettare le dipendenze nel campo contrassegnato.
Cosa significa autowiring e come viene realizzato in Spring?
L’autowiring è l’automatizzazione dell’iniezione delle dipendenze. In Spring si realizza con annotazioni (@Autowired, @Qualifier) che permettono al container di risolvere e iniettare automaticamente le dipendenze. I principali modi di autowiring sono, byName, byType e constructor.
Cos’è il Lazy Initialization in Spring?
La Lazy Initialization ritarda l’istanza del bean fino a quando non viene richiesto per la prima volta. Questo migliora il tempo di inizializzazione dell’applicazione, ma può ritardare la scoperta degli errori di configurazione fino a quando il bean non viene utilizzato.
Cos’è il framework Spring?
Spring è un framework Java per lo sviluppo di applicazioni enterprise, che facilita la gestione delle dipendenze, la programmazione orientata agli aspetti e offre vari moduli per costruire applicazioni robuste e scalabili.
Quali sono i principali vantaggi di usare Spring?
Spring offre inversione del controllo (IoC), programmazione orientata agli aspetti (AOP), modularità, configurazione flessibile e una comunità attiva, migliorando la modularità, testabilità e gestione delle configurazioni delle applicazioni.
Quali sono i diversi modi di configurare un’applicazione Spring?
Le applicazioni Spring possono essere configurate tramite XML, annotazioni e configurazioni Java. Ogni metodo offre vari gradi di controllo e semplicità.
Cos’è un Spring Bean e come viene gestito?
Un Spring Bean è un oggetto gestito dal container IoC. Viene definito tramite configurazioni XML, annotazioni (@Component, @Service) o JavaConfig (@Bean) e il container gestisce il suo ciclo di vita.