Springboot Flashcards

1
Q

Cos’è l’Inversion of Control (IoC)?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cos’è la Dependency Injection (DI)?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quali sono i vantaggi dell’Inversion of Control (IoC)?

A

-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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quali sono i principali meccanismi per realizzare IoC?

A

-Strategy Design Pattern
-Service Locator Pattern
-Factory Pattern
-Dependency Injection (DI)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cos’è il Spring IoC Container?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Come viene configurato il Spring IoC Container?

A

Il contenitore IoC di Spring può essere configurato utilizzando metadati di configurazione, che possono essere in forma di configurazione XML o annotazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cos’è la Setter-Based Dependency Injection?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cos’è la Constructor-Based Dependency Injection?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cos’è la Field-Based Dependency Injection?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Cosa significa autowiring e come viene realizzato in Spring?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Cos’è il Lazy Initialization in Spring?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cos’è il framework Spring?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quali sono i principali vantaggi di usare Spring?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quali sono i diversi modi di configurare un’applicazione Spring?

A

Le applicazioni Spring possono essere configurate tramite XML, annotazioni e configurazioni Java. Ogni metodo offre vari gradi di controllo e semplicità.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cos’è un Spring Bean e come viene gestito?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cos’è l’Aspect-Oriented Programming (AOP) e come viene implementato in Spring?

A

AOP separa le preoccupazioni trasversali (logging, sicurezza) dal codice principale. In Spring, si implementa con annotazioni (@Aspect, @Before, @After) che definiscono aspetti e pointcut.

16
Q

Quali sono le principali tecniche di accesso ai dati in Spring?

A

Spring supporta JDBC, JPA e ORM per l’accesso ai dati. JDBC fornisce un’astrazione sul livello di accesso diretto, JPA semplifica la persistenza con repository, e ORM come Hibernate automatizzano la mappatura tra oggetti Java e database.

17
Q

Come viene gestita la gestione delle transazioni in Spring?

A

Spring gestisce le transazioni tramite gestione dichiarativa (@Transactional) e programmatica (TransactionTemplate). Assicura che le operazioni siano atomiche e recuperabili.

18
Q

Cos’è Spring MVC e come viene utilizzato per costruire applicazioni web?

A

Spring MVC è un framework per costruire applicazioni web basato sull’architettura Model-View-Controller. Utilizza DispatcherServlet come front controller, gestisce richieste HTTP tramite controller annotati e supporta vari template engine per la vista.

19
Q

Cos’è Spring Security e come viene utilizzato per gestire l’autenticazione e l’autorizzazione?

A

Spring Security è un framework per la gestione della sicurezza, che fornisce autenticazione, autorizzazione e protezione contro attacchi comuni. Configurato tramite annotazioni e configurazioni Java, supporta diverse modalità di autenticazione.

20
Q

Cos’è Spring Boot e come semplifica lo sviluppo di applicazioni Spring?

A

Spring Boot semplifica lo sviluppo di applicazioni stand-alone con Spring, fornendo auto-configurazione, starters per dipendenze comuni, embedded server e strumenti di monitoraggio e gestione (Actuator).

21
Q

Come supporta Spring la creazione di servizi RESTful?

A

Spring supporta servizi RESTful tramite Spring MVC, utilizzando annotazioni come @RestController, @RequestMapping, e meccanismi di content negotiation. Supporta anche gestione degli errori, validazione e Spring Data REST per esporre repository come servizi RESTful.

22
Q

Cos’è Spring Cloud e come viene utilizzato per sviluppare applicazioni distribuite e microservizi?

A

Spring Cloud è un insieme di strumenti per sviluppare applicazioni distribuite e microservizi, fornendo soluzioni per configurazione distribuita, discovery dei servizi, resilienza, gateway e routing, messaging e tracciamento distribuito.

23
Q

Cos’è Spring Batch e come viene utilizzato per il processing di grandi quantità di dati?

A

Spring Batch è un framework per l’elaborazione di grandi quantità di dati, fornendo un modello step-oriented, supporto per lettura, elaborazione e scrittura di dati, gestione delle transazioni, riavvio e recupero e parallelismo.