EJB 3.0 поставляется с внедрением зависимостей на уровне ресурсов и EJB - что уже довольно круто: -)
Что делает CDI (и что еще круче) - это снижает барьер для внедрения зависимостей втак называемые «управляемые bean-компоненты» (JSR 316), которые (среди прочих) определяют минимальный набор предварительных условий, которые класс должен извлечь из внедрения зависимостей.Немного упрощая, можно сказать, что все классы в проекте CDI являются управляемыми bean-компонентами и, следовательно, пригодны для DI.
Подводя итог, что CDI переносит EJB 3.0 в терминах DI:
- вам больше не нужны EJB, CDI в основном работает с POJO.Это действительно легкий, потому что он позволяет вам использовать EJB, когда вам нужно EJB , а не когда вам нужен DI.
- DI превращается в состояние - разные зависимости живут в разных областях- что-то, что EJB 3.0 полностью не в состоянии доставить.
- вы можете воспользоваться небезопасным и слабо связанным механизмом перехватчика
- вы можете воспользоваться преимуществами небезопасного и слабосвязанного механизма
Взгляните на первую главу здесь , и вы поймете: -)