Spring
Sql
Microservizi
java Base
R.E.S.T.
100

Qual è la differenza tra autenticazione e autorizzazione in Spring Security?

L'autenticazione verifica l'identità, l'autorizzazione determina i permessi  

100

Cosa restituisce questa query SQL?

SELECT * FROM city WHERE floor > 100 ORDER BY size DESC;

100

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

100

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:

int numero = 5;


100

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

200

Qual è la funzione di `@Transactional` in Spring JPA?

Abilitare la gestione automatica delle transazioni

200

Cosa fa questa query con la clausola JOIN?

 SELECT people.id, car.name   FROM people JOIN car ON people.car_id = car.id;

Questa query utilizza una clausola JOIN per combinare dati da due tabelle: people e car

200

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.

200

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);

    }

}

200

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?

300

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.

300

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

300

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

300

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;

    }

}

300

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.

400

Come si configura un database in un'applicazione Spring Boot?

Aggiungere la dipendenza

<dependency>

    <groupId>org.postgresql</groupId>

    <artifactId>postgresql</artifactId>

    <scope>runtime</scope>

</dependency>

poi settare la connessione al db

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


e infine creare i modelli

400

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.

400

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.

400

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");

    }

}


400

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.

500

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

    {  "timestamp": "2025-03-24T12:00:00.000+00:00",  "status": 401,  "error": "Unauthorized",  "message": "Unauthorized",  "path": "/protected-endpoint"
    }


500

posso eseguire operazioni di modifica su una view

No, la view e solo al livello di interrogazione

500

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.

500

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;

    }

}


500

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


M
e
n
u