Внедрение управляемых bean-компонентов в JSF 2.0

Внедрение управляемых компонентов в JSF 2.0

В JSF 2.0 новая аннотация@ManagedProperty используется для внедрения зависимостей (DI) управляемого bean-компонента в свойство другого управляемого bean-компонента.

Рассмотрим пример@ManagedProperty:

MessageBean.java - управляемый компонент с именем «message».

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» в свойство «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 для DI bean-компонента «сообщение» (MessageBean.java) в свойстве (messageBean) bean-компонента «hello» (HelloBean.java) через метод установки,setMessageBean().

Note
Чтобы сделать эту инъекцию успешной, свойство inject (messageBean) должно предоставлять метод установки.

Скачать исходный код

Скачать -JSF-2-Inject-Managed-Beans-Example.zip (10 КБ)