Enterprise Intermédiaire

Remplace le @ManagedBean obsolète de JSF par @Named de CDI pour un modèle d'injection de dépendances unifié.

✕ 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;
    }
}
Un problème avec ce code ? Dites-le nous.
🔗

Modèle unifié

Un seul conteneur CDI gère tous les beans — JSF, REST et les couches de service partagent la même injection.

��️

Moins de code répétitif

@Inject remplace @ManagedProperty et sa méthode setter obligatoire.

🔮

Pérenne

@ManagedBean a été supprimé dans Jakarta EE 10 ; @Named est le remplacement supporté.

Ancienne Approche
@ManagedBean
Approche Moderne
@Named + CDI
Depuis JDK
11
Difficulté
Intermédiaire
JSF Managed Bean vs CDI Named Bean
Disponible

CDI @Named disponible depuis Java EE 6 ; @ManagedBean supprimé dans Jakarta EE 10

@ManagedBean et @ManagedProperty de JSF ont été dépréciés dans Jakarta Faces 2.3 et supprimés dans Jakarta EE 10. Le remplacement basé sur CDI utilise @Named pour exposer le bean aux expressions EL et @Inject pour le câblage des dépendances. Cela unifie le modèle de beans : les pages JSF, les ressources JAX-RS et les EJB partagent le même conteneur CDI.

Partager 𝕏 🦋 in