ManagedBeanler – CDI Bean

Selamlar,

  Öncelikle Eclipse veya Netbeans IDE içinde olan Glassfish bir uygulama sunucusudur fakat Apache Tomcat bir uygulama sunucu değildir, bu nedenle CDI Bean’i Tomcat üzerinde koşturamayız. CDI beanleri koşturmak için Wildfly Galssfish gibi uygulama sunucusu idemizde kurulu olmalıdır.

 Bean bir java sınıfıdır. Property/özellik tanımladığımız , public getter setter olan public no-arg constructor olan java sinifidir.
  @managedBean ise JSF tarafından yönetilen oluşturulan beanlerdir.
  Java da tanımlamalar temel olarak 2 meta-data olarak tanımlanabilir. Bu yaklaşımlar şunlardır ;
Annotation yaklaşımı ve xml yaklaşımı.Genelde Annotation yaklaşımı kullanılır.

   Jsf 2.0 ile annotationlar kullanılabilir. managedBean JSF’ye özgü bir isimdir bu isim spring frameworkte bean JPA’da ise bir başka isimle kullanılır. Temel olarak isimler değişebilir ama hepsinin  kullanım mantığı stabildir.

  JSF 2.3 versionu ile @managedBeanler deprecated(üzeri çizili, geçersiz) olmuştur. JSF 2.3 versiyonu ile artık CDİ beanler kullanılması önerilmektedir. Context And Dependency Injection Bean(CDI) @managedBean’e göre daha fazla özellik ve esneklik barındıran bean türüdür. 

  Bir Java sınıfının CDI Bean olabilmesi için onun  @Named  kullanılması gerekmektedir.CDI bean özellikleri Tip güvenliği, esneklik , events , ve ilgili bağlantılar arasında bağ kurmak.

CDI bean örnek:

package controller;

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;

@Named(value = "CDIBean") // Named Annotation yazılır.
@SessionScoped // Scope çeşiti belirtilir.

public class EmployeeController1 {

}

Managed Bean örnek:

package controller;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;


@ManagedBean //Annotation belirtilir.
@SessionScoped //Scope şeçilir ve annotation olarak belirtilir.
public class EmployeeController {

private String name;
private String surname;
private int age;
private int salary;

public String getName() {
return name;
}

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

public String getSurname() {
return surname;
}

public void setSurname(String surname) {
this.surname = surname;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public int getSalary() {
return salary;
}

public void setSalary(int salary) {
this.salary = salary;
}

Bilgi paylaştıkça çoğalır paylaşarak destek ol.