Enterprise Intermedio

Reemplaza el obsoleto @ManagedBean de JSF por @Named de CDI para un modelo de inyección de dependencias unificado.

✕ Java EE
@ManagedBean
@SessionScoped
public class UserBean implements Serializable {
    @ManagedProperty("#{userService}")
    private UserService userService;

    private String name;

    public String getName() { return name; }
    public void setName(String name) {
        this.name = name;
    }

    public void setUserService(UserService svc) {
        this.userService = svc;
    }
}
✓ Jakarta EE 10+
@Named
@SessionScoped
public class UserBean implements Serializable {
    @Inject
    private UserService userService;

    private String name;

    public String getName() { return name; }
    public void setName(String name) {
        this.name = name;
    }
}
¿Ves un problema con este código? Cuéntanos.
🔗

Modelo unificado

Un solo contenedor CDI gestiona todos los beans — JSF, REST y las capas de servicio comparten la misma inyección.

🗑️

Menos código repetitivo

@Inject reemplaza @ManagedProperty y su método setter obligatorio.

🔮

A prueba de futuro

@ManagedBean fue eliminado en Jakarta EE 10; @Named es el reemplazo soportado.

Enfoque Antiguo
@ManagedBean
Enfoque Moderno
@Named + CDI
Desde JDK
11
Dificultad
Intermedio
JSF Managed Bean vs CDI Named Bean
Disponible

CDI @Named disponible desde Java EE 6; @ManagedBean eliminado en Jakarta EE 10

@ManagedBean y @ManagedProperty de JSF fueron deprecados en Jakarta Faces 2.3 y eliminados en Jakarta EE 10. El reemplazo basado en CDI usa @Named para exponer el bean a expresiones EL e @Inject para el cableado de dependencias. Esto unifica el modelo de beans: las páginas JSF, los recursos JAX-RS y los EJBs comparten el mismo contenedor CDI.

Compartir 𝕏 🦋 in