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
- Anotación
@Component
: Permite que Spring detecte la clase como un componente y la registre en el contexto de la aplicación. - Implementación de
CommandLineRunner
: Permite ejecutar el métodorun()
al iniciar la aplicación. - Inyección de Dependencia con
@Autowired
: Se inyectaUserRepository
para interactuar con la base de datos. - Verificación de datos existentes: Si la tabla está vacía (
count() == 0
), se insertan nuevos registros. - 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.