Enterprise Intermedio

Reemplaza los pesados EJBs por beans CDI ligeros para inyección de dependencias y transacciones.

✕ Java EE
@Stateless
public class OrderEJB {
    @EJB
    private InventoryEJB inventory;

    public void placeOrder(Order order) {
        // container-managed transaction
        inventory.reserve(order.getItem());
    }
}
✓ Jakarta EE 8+
@ApplicationScoped
public class OrderService {
    @Inject
    private InventoryService inventory;

    @Transactional
    public void placeOrder(Order order) {
        inventory.reserve(order.getItem());
    }
}
¿Ves un problema con este código? Cuéntanos.
🪶

Ligero

Los beans CDI son clases Java simples sin interfaces ni descriptores específicos de EJB.

💉

Inyección unificada

@Inject funciona para cualquier bean gestionado, recursos JAX-RS y componentes Jakarta EE por igual.

🧪

Pruebas unitarias sencillas

Clases simples sin la sobrecarga del proxy EJB son fáciles de instanciar y simular.

Enfoque Antiguo
EJB
Enfoque Moderno
Bean CDI
Desde JDK
11
Dificultad
Intermedio
EJB versus CDI
Disponible

Ampliamente disponible desde Jakarta EE 8 / Java 11

CDI (Contexts and Dependency Injection) ofrece la misma inyección de dependencias y gestión de transacciones que los EJBs, pero como clases Java simples sin interfaces ni superclases específicas del contenedor. Los ámbitos como @ApplicationScoped y @RequestScoped controlan el ciclo de vida, y @Transactional reemplaza la semántica transaccional obligatoria de EJB.

Compartir 𝕏 🦋 in