-
Java Básico/Intermedio:
- Sintaxis: variables, operadores, estructuras de control.
- POO: clases, herencia, interfaces, polimorfismo.
- Manejo de excepciones (
try-catch
). - Colecciones (
List
,Map
,Set
). - Lambda expressions y streams (Java 8+).
-
Herramientas Básicas:
- Maven o Gradle (gestión de dependencias).
- Git (control de versiones).
- IDE: IntelliJ IDEA, Eclipse o VS Code.
-
¿Qué es Spring?
- Arquitectura modular.
- Spring vs Spring Boot.
- Inversión de Control (IoC) y Spring Container.
- Inyección de Dependencias (DI).
-
Spring Core:
- Configuración con
@Configuration
y@Bean
. - Anotaciones clave:
@Component
,@Service
,@Repository
,@Autowired
.
- Configuración con
-
Spring Boot:
- Creación de proyectos con Spring Initializr.
- Autoconfiguración y
application.properties
. - Uso de
SpringApplication
.
-
Spring MVC:
- Controladores con
@RestController
y@Controller
. - Mapeo de rutas (
@GetMapping
,@PostMapping
). - Thymeleaf o HTML para vistas (opcional).
- Controladores con
-
APIs REST:
- Manejo de JSON (
@RequestBody
,@ResponseBody
). - Validación de datos (
@Valid
). - Documentación con Swagger/OpenAPI.
- Manejo de JSON (
-
Seguridad:
- Spring Security básico (autenticación y autorización).
- JWT para APIs.
-
Spring Data JPA:
- Configuración de bases de datos (H2, MySQL, PostgreSQL).
- Repositorios (
CrudRepository
,JpaRepository
). - Consultas con
@Query
y métodos derivados.
-
Transacciones:
@Transactional
y manejo ACID.
-
Microservicios:
- Spring Cloud (Eureka, Zuul, Config Server).
- Comunicación entre servicios (Feign, RestTemplate).
- Circuit Breaker con Resilience4j o Hystrix.
-
Reactive:
- Spring WebFlux (programación reactiva).
- Diferencias entre bloqueante y no bloqueante.
-
Cloud:
- Despliegue en AWS/Azure/Google Cloud.
- Spring Cloud AWS y Kubernetes (conceptos básicos).
-
Serverless:
- Funciones Lambda con AWS y Spring Cloud Function.
-
Event Driven:
- Spring Kafka o RabbitMQ (mensajería asíncrona).
- Event Sourcing y CQRS (intro).
-
Batch:
- Spring Batch (procesamiento por lotes).
- Jobs, Steps y
ItemReader
/ItemWriter
.
-
Aplicación Web Full-Stack:
- Backend (Spring Boot) + Frontend (React/Angular).
- Autenticación JWT + base de datos.
-
Sistema de Microservicios:
- 2-3 servicios comunicándose (ej: pedidos, inventario, usuarios).
- Uso de Spring Cloud Gateway y Eureka.
-
Procesamiento de Datos:
- Spring Batch para importar/exportar archivos CSV.
- Integración con Spring:
- Uso de APIs de IA (OpenAI, TensorFlow Serving).
- Ejemplo: Chatbot con Spring Boot y GPT-3/4.
- Requisitos: Conocimiento de APIs REST y JSON.
- Testing: JUnit 5, Mockito, Testcontainers.
- DevOps: Docker, Jenkins (CI/CD básico).
- Monitoreo: Spring Actuator, Prometheus/Grafana.