Injection de beans gérés dans JSF 2.0

Injection de beans gérés dans JSF 2.0

Dans JSF 2.0, une nouvelle annotation@ManagedProperty est utilisée pour l'injection de dépendance (DI) d'un bean géré dans la propriété d'un autre bean géré.

Voyons un exemple de@ManagedProperty:

MessageBean.java - Un bean géré nommé «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 - Injectez le bean «message» dans la propriété «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;
    }

    //...
}

Dans cet exemple, il utilise l'annotation@ManagedProperty pour insérer le bean «message» (MessageBean.java) dans la propriété (messageBean) du bean «hello» (HelloBean.java) via la méthode setter,setMessageBean().

Note
Pour réussir cette injection, la propriété inject (messageBean) doit fournir la méthode de définition.

Télécharger le code source

Téléchargez-le -JSF-2-Inject-Managed-Beans-Example.zip (10 Ko)