Qual è la differenza tra autenticazione e autorizzazione in Spring Security?
L'autenticazione verifica l'identità, l'autorizzazione determina i permessi
Cosa restituisce questa query SQL?
SELECT * FROM city WHERE floor > 100 ORDER BY size DESC;
Cosa sono I microservizzi
I microservizi sono un'architettura software in cui un'applicazione è suddivisa in più servizi indipendenti e scalabili, ognuno responsabile di una funzionalità specifica. Questi servizi comunicano tra loro tramite API (solitamente REST o gRPC).
Cos'è una variabile in Java e come si dichiara?
Una variabile in Java è una locazione di memoria utilizzata per memorizzare un valore. Per dichiarare una variabile in Java, è necessario specificare il tipo di dato seguito dal nome della variabile, ad esempio:
Cos'è un endpoint in una API REST?
Un endpoint è una URL a cui il client invia una richiesta HTTP per interagire con una risorsa. Ogni endpoint rappresenta una specifica azione o un insieme di azioni relative a una risorsa (ad esempio, GET /users per ottenere tutti gli utenti).
Qual è la funzione di `@Transactional` in Spring JPA?
Abilitare la gestione automatica delle transazioni
Cos'è un Dockerfile? 🐳
Un Dockerfile è un file di testo che contiene una serie di istruzioni per creare un'immagine Docker.
L'immagine generata può essere usata per eseguire container in modo portabile e riproducibile su qualsiasi ambiente.
Cos'è una classe in Java?
Una classe in Java è un modello o blueprint per creare oggetti. Contiene variabili (attributi) e metodi che definiscono il comportamento degli oggetti creati dalla classe. Esempio:
class Persona {
String nome;
int età;
void saluta() {
System.out.println("Ciao, sono " + nome);
}
}
Cos'è un codice di stato HTTP 404?
Il codice di stato 404 Not Found indica che la risorsa richiesta non è stata trovata sul server. Questo errore si verifica quando l'URL o il percorso della risorsa non è corretto o non esiste.
5. Cos'è il codice di stato HTTP 200 OK?
Qual è lo scopo di Spring Boot Actuator?
Spring Boot Actuator ha lo scopo di monitorare e gestire le applicazioni Spring Boot in produzione. Fornisce una serie di endpoint REST e strumenti per ottenere informazioni sullo stato dell'applicazione, sulle metriche, sui log, sulla configurazione e molto altro.
Dei principi ACID quale ci permette di recuperare il database in caso di incendio
il principio indicato e Durability,indica che un db debba durare nel tempo anche in caso di perdita del server
Come avviene la comunicazione tra microservizi in Spring Boot?
I microservizi devono comunicare tra loro per scambiarsi dati e coordinare operazioni. In Spring Boot, la comunicazione può avvenire in due modi principali:
1️⃣ Sincrona → tramite REST API o gRPC
2️⃣ Asincrona → tramite Message Broker (Kafka, RabbitMQ, ecc.)
Cos'è un costruttore in Java e come si usa?
Un costruttore è un metodo speciale che viene chiamato quando si crea un oggetto di una classe. Serve per inizializzare l'oggetto. La sintassi è:
class Persona {
String nome;
// Costruttore
Persona(String nome) {
this.nome = nome;
}
}
Qual è la differenza tra i metodi HTTP GET, POST, PUT e DELETE in una API REST?
GET: Recupera dati dal server (senza modificarli).
POST: Invia dati al server per creare una nuova risorsa.
PUT: Modifica o sostituisce una risorsa esistente sul server.
DELETE: Elimina una risorsa dal server.
Come si configura un database in un'applicazione Spring Boot?
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
spring.datasource.url=jdbc:postgresql://localhost:5432/nome_database
spring.datasource.username=postgres
spring.datasource.password=tuapassword
spring.datasource.driver-class-name=org.postgresql.Driver
Cos'è una View?
n un database relazionale, una view è una tabella virtuale basata su una query SQL.
Non memorizza direttamente i dati ma mostra il risultato di una query, rendendo più semplice l'accesso alle informazioni.
Qual è il vantaggio principale di un'architettura a microservizi?
Il vantaggio principale dell'architettura a microservizi è la scalabilità e indipendenza dei servizi.
✅ Ogni microservizio è indipendente, quindi può essere sviluppato, testato, distribuito e scalato separatamente dagli altri.
Cos'è l'ereditarietà in Java?
L'ereditarietà è un meccanismo in Java che consente a una classe di ereditarne le proprietà e i metodi da un'altra classe. Esempio:
class Animale {
void mangia() {
System.out.println("Mangia");
}
}
class Cane extends Animale {
void abbaia() {
System.out.println("Abbaia");
}
}
Cos'è il CORS e come influisce su una API REST?
Il CORS (Cross-Origin Resource Sharing) è una politica di sicurezza dei browser che limita le richieste HTTP da un dominio diverso rispetto al dominio del server. Le API REST devono abilitare CORS per consentire le richieste da altri domini, solitamente impostando gli header appropriati come Access-Control-Allow-Origin.
Cosa succede se proviamo a chiamare un endpoint protetto senza autenticazione in questa configurazione Spring Security?
La risposta sarà:
Codice HTTP 401 (Unauthorized)
Corpo della risposta:
jsonCopiaModifica
posso eseguire operazioni di modifica su una view
No, la view e solo al livello di interrogazione
Qual è il comando che devi eseguire per costruire l'immagine Docker a partire dal Dockerfile e dare un tag (nome) all'immagine?
1️⃣ docker build -t nome_immagine .
2️⃣ docker run -t nome_immagine .
3️⃣ docker build . -t nome_immagine
4️⃣ docker image -t nome_immagine build .
Il comando corretto è docker build -t nome_immagine .
Ecco cosa fa il comando:
docker build: Costruisce l'immagine Docker.
-t nome_immagine: Assegna un nome (tag) all'immagine che stai creando.
.: Indica la directory corrente, dove si trova il Dockerfile.
Cos'è l'overloading dei metodi in Java?
L'overloading dei metodi in Java si verifica quando due o più metodi della stessa classe hanno lo stesso nome, ma parametri diversi (numero o tipo di argomenti). Esempio:
class Calcolatrice {
int somma(int a, int b) {
return a + b;
}
double somma(double a, double b) {
return a + b;
}
}
Come si implementa la paginazione in una API REST?
La paginazione in un'API REST viene solitamente implementata utilizzando parametri come limit e offset o page e size nei parametri della query. Ad esempio:
GET /users?page=2&size=10