Внедрение управляемых компонентов в 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 КБ)