En aquest tema, explorarem l'estructura típica d'un projecte Spring Boot. Entendre com està organitzat un projecte Spring Boot és fonamental per treballar de manera eficient i mantenir el codi net i organitzat.
Estructura bàsica d'un projecte Spring Boot
Quan crees un nou projecte Spring Boot, generalment veuràs una estructura de carpetes similar a la següent:
my-spring-boot-project ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └── myproject │ │ │ ├── MySpringBootApplication.java │ │ │ ├── controller │ │ │ ├── service │ │ │ ├── repository │ │ │ └── model │ │ ├── resources │ │ ├── application.properties │ │ └── static │ │ └── templates │ └── test │ ├── java │ │ └── com │ │ └── example │ │ └── myproject │ └── resources ├── .gitignore ├── mvnw ├── mvnw.cmd ├── pom.xml └── README.md
Descripció de les carpetes i fitxers
-
src/main/java: Conté el codi font de l'aplicació.
- com/example/myproject: Paquet base del projecte. Aquí és on es troben les classes principals.
- MySpringBootApplication.java: Classe principal de l'aplicació, anotada amb
@SpringBootApplication
. - controller: Conté les classes de controladors que gestionen les sol·licituds HTTP.
- service: Conté les classes de serveis que encapsulen la lògica de negoci.
- repository: Conté les interfícies de repositoris que gestionen l'accés a la base de dades.
- model: Conté les classes de model que representen les entitats de la base de dades.
- MySpringBootApplication.java: Classe principal de l'aplicació, anotada amb
- com/example/myproject: Paquet base del projecte. Aquí és on es troben les classes principals.
-
src/main/resources: Conté els recursos de l'aplicació.
- application.properties: Fitxer de configuració de l'aplicació.
- static: Conté recursos estàtics com ara HTML, CSS, JavaScript, imatges, etc.
- templates: Conté plantilles Thymeleaf o altres motors de plantilles.
-
src/test: Conté el codi de proves.
- java: Conté les classes de proves.
- resources: Conté els recursos necessaris per a les proves.
-
.gitignore: Fitxer que especifica quins fitxers o directoris han de ser ignorats per Git.
-
mvnw i mvnw.cmd: Scripts per executar Maven Wrapper.
-
pom.xml: Fitxer de configuració de Maven que defineix les dependències i la configuració del projecte.
-
README.md: Fitxer de documentació del projecte.
Exemple pràctic
A continuació, veurem un exemple pràctic d'una classe principal i un controlador simple.
Classe principal
package com.example.myproject; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MySpringBootApplication { public static void main(String[] args) { SpringApplication.run(MySpringBootApplication.class, args); } }
Controlador simple
package com.example.myproject.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("/hello") public String sayHello() { return "Hello, Spring Boot!"; } }
Exercici pràctic
Exercici 1: Crear un nou controlador
- Crea una nova classe anomenada
GreetingController
dins del paquetcontroller
. - Anota la classe amb
@RestController
. - Defineix un mètode
greet
que gestioni les sol·licituds GET a/greet
i retorni un missatge de benvinguda.
Solució
package com.example.myproject.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class GreetingController { @GetMapping("/greet") public String greet() { return "Welcome to Spring Boot!"; } }
Resum
En aquest tema, hem explorat l'estructura bàsica d'un projecte Spring Boot, incloent les carpetes i fitxers més importants. També hem vist un exemple pràctic d'una classe principal i un controlador simple. Finalment, hem proposat un exercici pràctic per reforçar els conceptes apresos. En el proper tema, aprofundirem en les anotacions de Spring Boot.
Curs de Spring Boot
Mòdul 1: Introducció a Spring Boot
- Què és Spring Boot?
- Configuració del teu entorn de desenvolupament
- Creant la teva primera aplicació Spring Boot
- Entenent l'estructura del projecte Spring Boot
Mòdul 2: Conceptes bàsics de Spring Boot
- Anotacions de Spring Boot
- Injecció de dependències a Spring Boot
- Configuració de Spring Boot
- Propietats de Spring Boot
Mòdul 3: Construint serveis web RESTful
- Introducció als serveis web RESTful
- Creant controladors REST
- Gestionant mètodes HTTP
- Gestió d'excepcions en REST
Mòdul 4: Accés a dades amb Spring Boot
- Introducció a Spring Data JPA
- Configuració de fonts de dades
- Creant entitats JPA
- Utilitzant repositoris de Spring Data
- Mètodes de consulta a Spring Data JPA
Mòdul 5: Seguretat a Spring Boot
- Introducció a Spring Security
- Configuració de Spring Security
- Autenticació i autorització d'usuaris
- Implementant autenticació JWT
Mòdul 6: Proves a Spring Boot
Mòdul 7: Funcions avançades de Spring Boot
Mòdul 8: Desplegant aplicacions Spring Boot
Mòdul 9: Rendiment i monitorització
- Optimització del rendiment
- Monitorització amb Spring Boot Actuator
- Utilitzant Prometheus i Grafana
- Gestió de registres i logs