Enterprise মধ্যম

Replace heavyweight EJBs with lightweight CDI beans for dependency injection and transactions.

✕ 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());
    }
}
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
🪶

Lightweight

CDI beans are plain Java classes with no EJB-specific interfaces or descriptors.

💉

Unified injection

@Inject works for every managed bean, JAX-RS resources, and Jakarta EE components alike.

🧪

Easy unit testing

Plain classes without EJB proxy overhead are straightforward to instantiate and mock.

পুরনো পদ্ধতি
EJB
আধুনিক পদ্ধতি
CDI Bean
JDK থেকে
11
কঠিনতা
মধ্যম
EJB versus CDI
উপলব্ধ

Widely available since Jakarta EE 8 / Java 11

CDI (Contexts and Dependency Injection) provides the same dependency injection and transaction management as EJBs, but as plain Java classes with no container-specific interfaces or superclasses. Scopes like @ApplicationScoped and @RequestScoped control lifecycle, and @Transactional replaces mandatory EJB transaction semantics.