Curso de Spring Boot
Seeder
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 inyectaUserRepositorypara 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.