transazioni CMT su EJB rispetto a @Transactional su bean CDI

1

Supponiamo che stiate progettando oggi un'applicazione web JSF JavaEE. Da una parte hai la possibilità di scegliere tra i metodi dei tuoi bean CDI @Transactional e, d'altra parte, iniettare EJB (senza stato di sessione o singleton) nei bean CDI, e quindi i metodi degli EJB verrebbero eseguiti nelle transazioni CMT . Cosa preferisci? Perché? È solo questione di gusti?

    
posta John Donn 24.08.2016 - 09:40
fonte

1 risposta

3

CDI dovrebbe essere il tuo modello di programmazione predefinito e l'EJB di impilamento sottostante dovrebbe essere fatto solo se richiesto perché è costoso.

Quindi la regola è: non usare EJB se non porta funzionalità che non hai in CDI.

Se si progetta una nuova applicazione, iniziare usando i bean gestiti CDI (POJO) con @Transactional e renderli EJB solo se sono necessarie funzionalità EJB specifiche (pool di componenti, operazione asincrona, chiamata remota).

@Transactional è definito nelle specifiche JTA come un intercettazione vincolante e l'implementazione JTA fornisce lo stesso servizio tramite questo intercettore rispetto alla CMT per EJB.

    
risposta data 25.08.2016 - 16:30
fonte

Leggi altre domande sui tag