JSF Managed Bean ile CDI Named Bean Karşılaştırması
Birleşik bir bağımlılık enjeksiyonu modeli için kullanımdan kaldırılmış JSF @ManagedBean'i CDI @Named ile değiştirin.
@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;
}
}
@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;
}
}
Birleşik model
Tek bir CDI kapsayıcısı tüm bean'leri yönetir — JSF, REST ve hizmet katmanları aynı enjeksiyonu paylaşır.
Daha az şablon kod
@Inject, @ManagedProperty ve gerekli setter yönteminin yerini alır.
Geleceğe hazır
@ManagedBean, Jakarta EE 10'da kaldırılmıştır; @Named desteklenen yerini alandır.
CDI @Named Java EE 6'dan itibaren kullanılabilir; @ManagedBean Jakarta EE 10'da kaldırılmıştır
JSF'in @ManagedBean ve @ManagedProperty'si, Jakarta Faces 2.3'te kullanımdan kaldırıldı ve Jakarta EE 10'da kaldırıldı. CDI tabanlı değişiklik, bean'i EL ifadelerine açmak için @Named ve bağımlılık bağlama için @Inject kullanır. Bu, bean modelini birleştirir: JSF sayfaları, JAX-RS kaynakları ve EJB'ler aynı CDI kapsayıcısını paylaşır.