Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Architettura a Tre Livelli | Fondamenti di Spring Boot
Spring Boot Backend

bookArchitettura a Tre Livelli

Questo viene fatto per separare la logica specifica in diverse classi/package, invece di scrivere tutto in una singola classe.

L'ordine in cui una richiesta viene elaborata è ControllerServiceRepository. Successivamente, la risposta viene restituita in ordine inverso: Repository -> Service -> Controller. Inizieremo l'implementazione con il layer Repository.

Livello Repository

Questo è il livello più basso, dove riceviamo dati elaborati dal layer Service e li salviamo nel nostro database.

Queste classi sono contrassegnate con l'annotazione @Repository per essere aggiunte al contesto Spring.

Main.java

Main.java

copy
1234
@Repository public class RepositoryLevel { // connect DB }

Esempio di utilizzo del Repository

Livello di Servizio

Qui avviene la logica principale dell'applicazione. Nei servizi, si gestiscono o modificano i dati prima di passarli al repository layer.

Per i servizi, si utilizza l'annotazione @Service, che dichiara la classe come un service contenente la logica di business.

Main.java

Main.java

copy
1234567
@Service public class ServiceLevel { public void logic() { //TODO: write business logic } }

Esempio di utilizzo del Service

Livello Controller

Questo livello gestisce l'interazione iniziale tra il client e il server. Tutte le richieste inviate dal client arrivano qui, ed è responsabile della ricezione dei dati forniti dal client.

Elabora le richieste HTTP in ingresso e restituisce le risposte HTTP. I controller fungono da "ponte" tra il client e la logica di business.

A questo livello, sono utilizzate due annotazioni per designare una classe come controller:

  • @RestController: Dichiara una classe come REST controller, che gestisce le richieste HTTP e restituisce dati in formato JSON;

  • @Controller: Dichiara una classe come MVC controller, che gestisce le richieste e restituisce viste (ad esempio, HTML).

Main.java

Main.java

copy
12345678
@Controller public class ControllerLevel { @GetMapping("/root") public String getPage() { return "template"; } }

L'annotazione @GetMapping specifica l'URL per una determinata richiesta. Questo significa che aggiungiamo il percorso specificato /root al dominio e, in cambio, riceviamo la pagina corrispondente.

Esempio di utilizzo del Controller

La dipendenza Thymeleaf dal video

Ecco il link alla dipendenza Thymeleaf nel repository Maven.

Ma cosa succede se non segui questo approccio?

In realtà, tecnicamente nulla. Anche se scrivi tutta la logica di business nel controller, ti connetti al database lì e restituisci la risposta al client dallo stesso punto, tutto funzionerà allo stesso modo.

Tuttavia, è improbabile che tu ricordi cosa hai scritto lì dopo alcune settimane, perché tutta la logica dell'applicazione sarà in un unico posto, il che è estremamente scomodo.

Riepilogo

L'architettura a tre livelli offre una chiara separazione delle responsabilità tra i livelli di controllers, services e repositories, rendendo il processo di sviluppo più organizzato e facile da mantenere.

Ogni livello si concentra sul proprio compito specifico, semplificando sia il flusso di lavoro che la gestione del progetto.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 3.45

bookArchitettura a Tre Livelli

Scorri per mostrare il menu

Questo viene fatto per separare la logica specifica in diverse classi/package, invece di scrivere tutto in una singola classe.

L'ordine in cui una richiesta viene elaborata è ControllerServiceRepository. Successivamente, la risposta viene restituita in ordine inverso: Repository -> Service -> Controller. Inizieremo l'implementazione con il layer Repository.

Livello Repository

Questo è il livello più basso, dove riceviamo dati elaborati dal layer Service e li salviamo nel nostro database.

Queste classi sono contrassegnate con l'annotazione @Repository per essere aggiunte al contesto Spring.

Main.java

Main.java

copy
1234
@Repository public class RepositoryLevel { // connect DB }

Esempio di utilizzo del Repository

Livello di Servizio

Qui avviene la logica principale dell'applicazione. Nei servizi, si gestiscono o modificano i dati prima di passarli al repository layer.

Per i servizi, si utilizza l'annotazione @Service, che dichiara la classe come un service contenente la logica di business.

Main.java

Main.java

copy
1234567
@Service public class ServiceLevel { public void logic() { //TODO: write business logic } }

Esempio di utilizzo del Service

Livello Controller

Questo livello gestisce l'interazione iniziale tra il client e il server. Tutte le richieste inviate dal client arrivano qui, ed è responsabile della ricezione dei dati forniti dal client.

Elabora le richieste HTTP in ingresso e restituisce le risposte HTTP. I controller fungono da "ponte" tra il client e la logica di business.

A questo livello, sono utilizzate due annotazioni per designare una classe come controller:

  • @RestController: Dichiara una classe come REST controller, che gestisce le richieste HTTP e restituisce dati in formato JSON;

  • @Controller: Dichiara una classe come MVC controller, che gestisce le richieste e restituisce viste (ad esempio, HTML).

Main.java

Main.java

copy
12345678
@Controller public class ControllerLevel { @GetMapping("/root") public String getPage() { return "template"; } }

L'annotazione @GetMapping specifica l'URL per una determinata richiesta. Questo significa che aggiungiamo il percorso specificato /root al dominio e, in cambio, riceviamo la pagina corrispondente.

Esempio di utilizzo del Controller

La dipendenza Thymeleaf dal video

Ecco il link alla dipendenza Thymeleaf nel repository Maven.

Ma cosa succede se non segui questo approccio?

In realtà, tecnicamente nulla. Anche se scrivi tutta la logica di business nel controller, ti connetti al database lì e restituisci la risposta al client dallo stesso punto, tutto funzionerà allo stesso modo.

Tuttavia, è improbabile che tu ricordi cosa hai scritto lì dopo alcune settimane, perché tutta la logica dell'applicazione sarà in un unico posto, il che è estremamente scomodo.

Riepilogo

L'architettura a tre livelli offre una chiara separazione delle responsabilità tra i livelli di controllers, services e repositories, rendendo il processo di sviluppo più organizzato e facile da mantenere.

Ogni livello si concentra sul proprio compito specifico, semplificando sia il flusso di lavoro che la gestione del progetto.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5
some-alt