Spring Boot 4 cheatsheet

Spring Boot 4: Controllers and beans

6 common Spring Boot 4 tasks.

Write a REST controller

Return objects from handler methods as JSON.

@RestController
@RequestMapping("/api/users")
public class UserController {

    @GetMapping("/{id}")
    public User get(@PathVariable Long id) {
        return service.find(id);
    }
}

Accept a JSON body

Bind and validate a request body.

@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public User create(@Valid @RequestBody UserRequest request) {
    return service.create(request);
}

Declare a service

Register a class as a bean. Spring injects constructor arguments.

@Service
public class UserService {
    private final UserRepository repository;

    public UserService(UserRepository repository) {
        this.repository = repository;
    }
}

Define a JPA entity

Map a class to a database table.

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
}

Create a repository

Get CRUD methods and derived queries without writing SQL.

public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findByEmail(String email);
}

Handle exceptions globally

Turn exceptions into HTTP responses for all controllers.

@RestControllerAdvice
public class ApiExceptionHandler {

    @ExceptionHandler(NotFoundException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public String notFound(NotFoundException ex) {
        return ex.getMessage();
    }
}

Was this page helpful?