Dans le cas où une interface est implémentée par plusieurs classes,
alors l'élément
name
des annotations
@Stateless
,
@Stateful
, et
@Singleton
et l'élément
beanName
de l'annotation
@EJB
doivent être utilisés pour préciser les sessions beans à injecter.
-
Commençant par créer une interface locale :
-
Créant maintenant deux classes distinctes qui implémentent l'interface locale :
Notes :
- Il faut remarquer que les deux classes MyStatelessAlpha
et MyStatelessDelta
utilisent l'annotation @Local
pour préciser les interfaces métiers des stateless beans
(cela n'est pas nécessaire si les interfaces sont annotées directement par cette annotation).
- Les deux classes (MyStatelessAlpha
et MyStatelessDelta
) implémente la même interface (MyInterfaceLocal
)
comme interface métier, et il peut être pratique d'utiliser l'élément name
de l'annotation @Stateless
pour donner des noms explicites (et typiquement différents des noms par défaut des classes) pour distinguer chaque stateless bean ("MyStatelessAlphaName", "MyStatelessDeltaName").
-
Enfin, utilisant l'annotation
@EJB
pour référencer les deux stateless beans.
Notes :
- Il faut remarquer l'utilisation l'élément beanName
de l'annotation @EJB
pour spécifier au container EJB quel stateless bean doit être injecté.