Preguntas de Conocimientos
Generales
Entrevistador: ¿Qué es Spring Boot y cuáles son sus ventajas principales?
Candidato: Spring Boot es un framework basado en Spring que simplifica
la creación de aplicaciones Java al ofrecer configuración automática, un
servidor embebido (Tomcat, Jetty o Undertow), y un conjunto de dependencias
preconfiguradas. Sus ventajas incluyen rapidez en el desarrollo, menor
configuración manual, integración con microservicios y facilidad para desplegar
en entornos cloud.
Preguntas Técnicas sobre el Framework
Entrevistador: ¿Cuál es la diferencia entre @Controller, @RestController y @Service?
Candidato:
- @Controller: se usa para manejar peticiones web y devolver vistas (generalmente
con Thymeleaf, JSP, etc.).
- @RestController: combina @Controller y @ResponseBody, devolviendo directamente JSON o XML.
- @Service: marca una clase como componente de lógica de negocio.
Entrevistador: ¿Cómo maneja Spring Boot la inyección de dependencias?
Candidato: Utiliza el contenedor de Spring con el patrón de Inversión de
Control (IoC). Las dependencias se inyectan usando anotaciones como @Autowired, @Qualifier o a través de la inyección por
constructor, que es la recomendada por ser más clara y testeable.
Preguntas sobre APIs REST
Entrevistador: Si tienes que crear una API para gestionar usuarios, ¿cómo lo harías?
Candidato: Crearía un controlador anotado con @RestController, un repositorio con JpaRepository para
persistencia, y un servicio intermedio para la lógica de negocio.
Usaría métodos como GET /usuarios, POST /usuarios, PUT /usuarios/{id}, y DELETE /usuarios/{id}.
Ejemplo de endpoint:
@GetMapping("/usuarios/{id}")
public ResponseEntity<Usuario> obtenerUsuario(@PathVariable Long id) {
return usuarioService.findById(id)
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
Preguntas sobre Seguridad
Entrevistador: ¿Cómo implementarías autenticación y autorización en Spring Boot?
Candidato: Utilizaría Spring Security con JWT (JSON Web Token)
para manejar autenticación sin estado. Configuraría un SecurityFilterChain para proteger rutas y definir roles como ROLE_USER o ROLE_ADMIN.
Preguntas de Arquitectura y
Microservicios
Entrevistador: ¿Qué ventajas ofrece Spring Boot para el desarrollo de microservicios?
Candidato: Ofrece integración con Spring Cloud, soporte para
configuración distribuida, service discovery (Eureka), balanceo de carga
(Ribbon), comunicación entre servicios (Feign), resiliencia
(Hystrix/Resilience4j), y facilidad de despliegue en Kubernetes y Docker.
Preguntas de Buenas Prácticas
Entrevistador: ¿Cómo aseguras la calidad del código en un proyecto Spring Boot?
Candidato:
- Uso de
pruebas unitarias con JUnit y Mockito.
- Pruebas de
integración con Spring Boot Test.
- Documentación
automática con Swagger/OpenAPI.
- Manejo
centralizado de errores con @ControllerAdvice.
- Aplicar
principios SOLID y Clean Code.
Pregunta Final de Experiencia
Entrevistador: Cuéntame un desafío que hayas enfrentado usando Spring Boot y cómo lo
resolviste.
Candidato: (Ejemplo de respuesta)
“En un proyecto de microservicios, tuvimos problemas con la comunicación entre
servicios y fallas intermitentes. Implementé Resilience4j para aplicar circuit
breakers y retries, además de centralizar logs con ELK (Elasticsearch, Logstash
y Kibana). Esto mejoró la resiliencia del sistema y permitió detectar cuellos
de botella más rápido.”