Добавление к ответу Михаила;CDI полезен не только в сочетании с JSF из-за поддержки инъекций, но также из-за его поддержки для использования с EL (язык выражений).Это особенность, от которой сильно зависит JSF.
Фактически, бины CDI могут почти полностью заменить управляемые бины JSF, и поэтому вы найдете множество примеров, использующих их, и большое количество книг JSF, рекомендующих их использование.Для приложений JSF компоненты CDI имеют, например, следующие преимущества:
- Может вводить меньшие области в большие области.Например, параметры GET в области запроса могут быть введены в bean-объект в области сеанса.Это невозможно с управляемыми компонентами JSF.
- Может использовать область диалога;область действия, которая порождает несколько разных страниц.
Очень прискорбно, что в JSF 2.0 и 2.1 чрезвычайно удобная область просмотра не поддерживается компонентами CDI по умолчанию, хотя такие расширения, как Seam, могут их добавлять.(обновление: в JSF 2.2 есть новая область просмотра, которая работает с компонентами CDI)
В целом путаница между компонентами JSF Managed и компонентами CDI такова, что для этого существует проблема спецификации JSF, см. http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-976