2016-11-03 2 views
1

Je veux savoir si je peux utiliser des classes annotées avec @RequestScoped au lieu de @Stateless pour écrire ma logique métier.Puis-je écrire une logique métier dans les beans @RequestScoped au lieu d'un EJB sans état?

J'ai quelques EJBs qui ont une certaine logique métier et aucun code de base de données. La seule raison pour laquelle je l'ai déclaré comme EJB est de profiter de interceptors. Comme il n'y a pas besoin de gestion des transactions, je pense que le déclarer comme @RequestScoped aura plus de sens.

Quelqu'un peut-il suggérer s'il vous plaît.

+1

Je suppose que vous concevez un service REST. Vous ne savez pas quelle logique métier vous envisagez d'utiliser dans votre intercepteur, mais vous pouvez probablement obtenir le même résultat avec des filtres JEE standard liés à un service de repos. Une autre alternative pour manipuler la requête/réponse, si ma supposition sur REST est correcte, est d'utiliser un MessageBodyReader et un MessageBodyWriter. – Leonardo

Répondre

0

Utilisez @Named et @RequestScoped si tu veux programmer votre logique métier dépendent de la requête HTTP (Un objet qui est défini comme @RequestScoped est créé une fois pour chaque demande et est partagée par tous les haricots qui l'injectent dans toute une demande) . Mais dans le cas de UserTransaction, Datasource, la sécurité des threads et des incepteurs sera un problème, alors restez avec @stateless.