Curso de Spring Boot | 8. Seeder

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

En esta lección aprenderemos a implementar un Seeder en Spring Boot utilizando CommandLineRunner. Un Seeder es una clase que inserta datos en la base de datos al iniciar la aplicación, asegurando que haya datos iniciales para su correcto funcionamiento.

package com.app.seeders;

@Component
public class UserSeeder implements CommandLineRunner {
    @Autowired
    UserRepository userRepository;

    @Override
    public void run(String... args) throws Exception {
        if (userRespository.count() == 0) { // Este método devuelve el número de registros que hay en la base de datos. Sólo insertaremos datos si no había nada previamente
            userRepository.save(new User(1, "Juan"));
            ...
        }
    }
}

Explicación del Código

  1. Anotación @Component: Permite que Spring detecte la clase como un componente y la registre en el contexto de la aplicación.
  2. Implementación de CommandLineRunner: Permite ejecutar el método run() al iniciar la aplicación.
  3. Inyección de Dependencia con @Autowired: Se inyecta UserRepository para interactuar con la base de datos.
  4. Verificación de datos existentes: Si la tabla está vacía (count() == 0), se insertan nuevos registros.
  5. Uso de userRepository.save(): Se guarda un nuevo usuario en la base de datos.

Beneficios del Uso de Seeders

  • Garantiza que la base de datos tenga datos mínimos para pruebas y desarrollo.
  • Evita errores cuando la aplicación depende de ciertos registros iniciales.
  • Permite automatizar la configuración inicial sin intervención manual.

Conclusión

En esta lección aprendimos cómo implementar un Seeder en Spring Boot utilizando CommandLineRunner. Esto nos permite poblar la base de datos automáticamente con datos iniciales, facilitando el desarrollo y las pruebas.

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.