Tips para SpringBoot
Cuando se trabaj con SpringBoot y tienes ya! una cierta experiencia de otros frameworks o herramientas técnológicas enfocadas a mejorar tus procesos, on boarding, best practices o lo que sea más rápido para preparar un setup básico, tengo unos tips:
- Trabajar con @Component
Para abrodar este trabajo pénsemos en este caso de uso:
Poder Tener una clase UserSeeder, cuyo objetivo es que al momento de correr tu aplicación en Spring, éste por si sólo pueda "poblar" datos estáticos, este ejemplo. lo puedes usar por ejemplo en: Bancos, Ciudades, Comunas, Tipos de Moneda, Medios de Pago, Cuentas Contables, Tipos de Cuentas Bancarias, Rol del Colaborador, Nombre Compañias y Sucursales, entre otras clases que a simple vista inicialmente no deben de cambiar, sólo poblar en caso de requerir, se recomienda trabajar con @Configuration.
- Ejemplo en UserSeeder:
- Crear dentro de tu proyecto un Package "config", dentro de este, crear una clase llamada "UserSeeder que tiene que implementar "CommandLineRunner".
- @Autowired para :
- private userRepository userRepository;
- @Override
- Acá puedes crear tu objeto de User y cerar usuarios básicos.
Ejemplo Código Fuente:
- Acá puedes crear tu objeto de User y cerar usuarios básicos.
@Component
public class UserSeeder implements CommandLineRunner {
@Autowired
private UserReposity userReposity;
@Autowired
private PasswordEncoder passwordEncoder;
@Override
public void run(String... args) throws Exception {
//Verificar si ya existen usuarios para evitar duplicados
if(userReposity.count() == 0){
System.out.println("Poblando la base de datos con usuarios...");
// Crea y guarda un usuario
User user1 = new User();
user1.setUsername("admin");
user1.setEmail("admin@integraltech.cl");
user1.setName("User 1");
user1.setSurname("User");
user1.setPassword(passwordEncoder.encode("password123")); // Encripta la contraseña
userReposity.save(user1);
User user2 = new User();
user2.setUsername("demo");
user2.setEmail("demo@integraltech.cl");
user2.setName("User 2");
user2.setSurname("Demo");
user2.setPassword(passwordEncoder.encode("password123")); // Encripta la contraseña
userReposity.save(user2);
System.out.println("Datos de usuarios creados con éxito!");
} else {
System.out.println("La Base de Datos ya contiene usuarios. No se han creado nuevos. ");
}
}
}
Tu IDE como por Ejemplo Intellij IDEA reconocerá que exste un "CommandLineRunner" que ejemcutará "Run" para poder poblar los datos antes que tu aplicación esté 100% desplegada.


/Applications/Postgres.app/Contents/Versions/9.3/bin/createuser -s postgres