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

  1. Crea una nova classe anomenada GreetingController dins del paquet controller.
  2. Anota la classe amb @RestController.
  3. 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

Mòdul 2: Conceptes bàsics de Spring Boot

Mòdul 3: Construint serveis web RESTful

Mòdul 4: Accés a dades amb Spring Boot

Mòdul 5: Seguretat a Spring Boot

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ó

Mòdul 10: Millors pràctiques i consells

© Copyright 2024. Tots els drets reservats