Spring
S.O.L.I.D.
Database
R.E.S.T
Java
100

Quali sono le differenze tra @RequestMapping, @GetMapping, @PostMapping e simili?


  • @RequestMapping("/users"): mappa un URL generico
  • @GetMapping("/users"): gestisce richieste GET
  • @PostMapping("/users"): gestisce richieste POST
  • @PutMapping("/users/{id}"): gestisce richieste PUT
  • @DeleteMapping("/users/{id}"): gestisce richieste DELETE


100

Cos'è il Single Responsibility Principle (SRP)?

Ogni classe deve avere una sola ragione di cambiare, cioè deve avere una sola responsabilità.

100

Cosa è un database?

Un database è una raccolta organizzata di dati che può essere gestita e interrogata tramite un DBMS.

100

Cos'è l'architettura REST?

REST (Representational State Transfer) è uno stile architetturale per la progettazione di servizi web basato su risorse accessibili tramite HTTP.

100

Cos' è una Collection

Collectors è una classe di utilità nel pacchetto java.util.stream che fornisce varie implementazioni di operazioni di riduzione, come l'accumulo di elementi in raccolte, il riepilogo di elementi in base a vari criteri e altro ancora

200

Come si avvia un’applicazione Spring Boot e quale annotazione principale viene utilizzata?

Un'app Spring Boot si avvia con il metodo main(), che chiama SpringApplication.run(App.class, args). L'annotazione principale è @SpringBootApplication.

200

Qual è l'obiettivo principale dei principi SOLID nello sviluppo software?

Ridurre la complessità, migliorare la modularità e facilitare il riuso del codice.

200

Cos'è una chiave primaria (Primary Key)?

Una colonna o un insieme di colonne che identificano in modo univoco ogni riga di una tabella.

200

Qual è il formato più comune per le risposte REST?

Il JSON è il formato più usato, ma possono essere usati anche XML, YAML o plain text.

200

Qual è la differenza tra JPA e Hibernate?

  • JPA: specifica standard per ORM in Java EE.
  • Hibernate: una delle implementazioni di JPA più popolari.
300

Cos'è il Spring Framework e quali sono i suoi principali vantaggi?

Spring è un framework open-source per lo sviluppo di applicazioni Java. Offre supporto per l'Inversion of Control (IoC) e la Dependency Injection (DI), facilitando lo sviluppo di applicazioni modulari, testabili e scalabili. I principali vantaggi includono:

  • Facilità di gestione delle dipendenze
  • Integrazione con altri framework
  • Supporto per lo sviluppo di applicazioni web e REST
  • Automazione con Spring Boot
300

Cos'è il Liskov Substitution Principle (LSP)?

Gli oggetti di una classe derivata devono poter sostituire gli oggetti della loro classe base senza alterare il corretto funzionamento del programma.

300

Qual è la differenza tra INNER JOIN, LEFT JOIN e RIGHT JOIN?

  • INNER JOIN: restituisce solo righe con corrispondenza tra due tabelle
  • LEFT JOIN: tutte le righe della prima tabella, anche se non ci sono corrispondenze
  • RIGHT JOIN: tutte le righe della seconda tabella
300

Quali sono i metodi HTTP usati nelle API REST?


  • GET: recupera risorse
  • POST: crea nuove risorse
  • PUT: aggiorna risorse esistenti
  • PATCH: modifica parziale di una risorsa
  • DELETE: elimina risorse


300

Cos'è Java EE (Jakarta EE)?

Java EE (Enterprise Edition), ora Jakarta EE, è una piattaforma per lo sviluppo di applicazioni enterprise in Java, fornendo API per servizi web, gestione delle transazioni, sicurezza e componenti distribuiti.

400

Cos'è l'annotazione @Component e in che modo differisce da @Bean?

  • @Component viene usato su una classe per dichiararla come bean, e Spring la gestisce automaticamente.
  • @Bean viene usato in una classe di configurazione (@Configuration) per dichiarare un bean in modo esplicito.
400

Quali sono i cinque principi SOLID?

  • S: Single Responsibility Principle (SRP)
  • O: Open/Closed Principle (OCP)
  • L: Liskov Substitution Principle (LSP)
  • I: Interface Segregation Principle (ISP)
  • D: Dependency Inversion Principle (DIP)
400

Cos'è una transazione e quali sono le sue proprietà (ACID)?

  • Atomicità: tutto o niente
  • Coerenza: il database passa da uno stato valido a un altro
  • Isolamento: le transazioni non interferiscono tra loro
  • Durabilità: i dati salvati rimangono anche in caso di guasto
400

Cosa sono gli status code HTTP e quali sono i più comuni nelle API REST?
Gli status code HTTP indicano il risultato di una richiesta: (dinne almeno 3)

  • 200 OK → richiesta riuscita
  • 201 Created → risorsa creata
  • 204 No Content → richiesta eseguita senza risposta
  • 400 Bad Request → errore del client
  • 401 Unauthorized → autenticazione richiesta
  • 403 Forbidden → accesso negato
  • 404 Not Found → risorsa non trovata
  • 500 Internal Server Error → errore del server
400

Cos'è il Contexts and Dependency Injection (CDI)?

CDI permette l'iniezione di dipendenze tra componenti Java EE, facilitando la gestione dei bean e il loro ciclo di vita.

500

Cos'è il file application.properties e quali configurazioni può contenere?

È un file di configurazione per personalizzare il comportamento dell’applicazione. Può contenere:

  • Porta del server (server.port=8081)
  • Configurazione del database (spring.datasource.url=...)
  • Logging (logging.level.org.springframework=DEBUG)


500

Quali problemi possono derivare dalla violazione dei principi SOLID?


  • Codice difficile da modificare o estendere
  • Dipendenze eccessive tra classi
  • Problemi di testabilità
  • Maggior rischio di bug
500

Cos'è un indice e a cosa serve?

Un indice accelera le ricerche su una colonna. Esempio:

500

Cos'è il token-based authentication?

Un sistema di autenticazione in cui un token (es. JWT) viene usato per autenticare le richieste.

500

Cosa sono i JSP (JavaServer Pages)?

I JSP sono pagine web dinamiche che combinano HTML e codice Java, usate per generare contenuti lato server in modo più semplice rispetto alle Servlet.