Introducció a Spring Boot

Framework per a aplicacions Java modernes

Novembre 2025

Què és Spring Boot?

Framework que simplifica el desenvolupament d'aplicacions Java basades en Spring.

Requisits previs

Crear projecte amb Spring Initializr

Accedeix a https://start.spring.io

Estructura del projecte

src/main/java/com/example/demo/
├── DemoApplication.java
├── controller/
│   └── UserController.java
├── service/
│   └── UserService.java
├── repository/
│   └── UserRepository.java
└── entity/
    └── User.java

Classe principal @SpringBootApplication

@SpringBootApplication
public class DemoApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(
            DemoApplication.class, args
        );
    }
}

Combina: @Configuration + @EnableAutoConfiguration + @ComponentScan

Arquitectura en capes

Controller

Gestiona peticions HTTP i respostes

Service

Conté la lògica de negoci

Repository

Accés a dades (JPA)

Entity

Models de dades

Entitat JPA - User

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false)
    private String nom;
    
    @Column(nullable = false)
    private String email;
    
    // Getters i Setters
}

Repository - Accés a dades

@Repository
public interface UserRepository 
    extends JpaRepository<User, Long> {
    
    User findByEmail(String email);
    
    List<User> findByNomContaining(String nom);
}

Spring Data JPA genera la implementació automàticament

Service - Lògica de negoci

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
    
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }
    
    public User createUser(User user) {
        return userRepository.save(user);
    }
}

REST Controller

@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;
    
    @GetMapping
    public ResponseEntity<List<User>> getAllUsers() {
        return ResponseEntity.ok(userService.getAllUsers());
    }
    
    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody User user) {
        return ResponseEntity.status(HttpStatus.CREATED)
            .body(userService.createUser(user));
    }
}

Mètodes HTTP i anotacions

Configuració - application.properties

# Port del servidor
server.port=8080

# Base de dades
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password

# JPA/Hibernate
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

Dependency Injection

Spring gestiona les dependències automàticament

Validacions amb Bean Validation

public class User {
    @NotNull
    @Size(min = 2, max = 50)
    private String nom;
    
    @Email
    @NotBlank
    private String email;
}

@PostMapping
public ResponseEntity createUser(@Valid @RequestBody User user) {
    // ...
}

Executar l'aplicació

Des de la línia de comandes:

mvn spring-boot:run

L'aplicació s'executarà a http://localhost:8080

Provar l'API REST

Eines recomanades:

Avantatges de Spring Boot

Properes passes

Recursos addicionals

Gràcies!

Preguntes?

Ara és el torn dels treballs pràctics