JSF 2.0でマネージドBeanを注入する

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)