JSF 2.0でのマネージドBeanの注入
JSF 2.0では、新しい@ManagedPropertyアノテーションを使用して、マネージドBeanを別のマネージドBeanのプロパティに依存性注入(DI)します。
@ManagedPropertyの例を見てみましょう:
MessageBean.java –「message」という名前のマネージドBean。
import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="message") @SessionScoped public class MessageBean implements Serializable { //business logic and whatever methods... }
HelloBean.java –「message」Beanを「messageBean」プロパティに注入します。
import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.SessionScoped; @ManagedBean @SessionScoped public class HelloBean implements Serializable { @ManagedProperty(value="#{message}") private MessageBean messageBean; //must povide the setter method public void setMessageBean(MessageBean messageBean) { this.messageBean = messageBean; } //... }
この例では、@ManagedPropertyアノテーションを使用して、「メッセージ」Bean(MessageBean.java)を「hello」Bean(HelloBean.java)のプロパティ(messageBean)にDIします。セッターメソッドを介して、setMessageBean()。
Note
この注入を成功させるには、注入プロパティ(messageBean)がsetterメソッドを提供する必要があります。
ソースコードをダウンロード
ダウンロード–JSF-2-Inject-Managed-Beans-Example.zip(10KB)