Enterprise Intermedio

Sostituisci gli EJB pesanti con bean CDI leggeri per dependency injection e transazioni.

✕ Java EE
@Stateless
public class OrderEJB {
    @EJB
    private InventoryEJB inventory;

    public void placeOrder(Order order) {
        // container-managed transaction
        inventory.reserve(order.getItem());
    }
}
✓ Jakarta EE 8+
@ApplicationScoped
public class OrderService {
    @Inject
    private InventoryService inventory;

    @Transactional
    public void placeOrder(Order order) {
        inventory.reserve(order.getItem());
    }
}
Vedi un problema con questo codice? Faccelo sapere.
🪶

Leggero

I bean CDI sono semplici classi Java senza interfacce o descrittori EJB.

💉

Iniezione unificata

@Inject funziona per ogni bean gestito, risorse JAX-RS e componenti Jakarta EE.

🧪

Test unitari facili

Le classi semplici senza overhead del proxy EJB sono facili da istanziare e simulare.

Approccio Vecchio
EJB
Approccio Moderno
Bean CDI
Dal JDK
11
Difficoltà
Intermedio
EJB vs CDI
Disponibile

Ampiamente disponibile da Jakarta EE 8 / Java 11

CDI (Contexts and Dependency Injection) fornisce la stessa dependency injection e gestione delle transazioni degli EJB, ma come semplici classi Java senza interfacce o superclassi specifiche per container. Gli scope come @ApplicationScoped e @RequestScoped controllano il ciclo di vita, e @Transactional sostituisce la semantica transazionale obbligatoria degli EJB.

Condividi 𝕏 🦋 in