http://stackoverflow.com/questions/11986847/java-ee-6-javax-annotation-managedbean-vs-javax-inject-named-vs-javax-faces
The various beans and their annotations are indeed quite confusing. Someone summarized in the above reference
Managed Beans:
generally an object that its lifecycle managed by a container
Java EE has many containers, each kind of independent (there's historical reason behind)
JSF
EJB
CDI
Servlet
etc.
JSF managed beans
simply don't use
CDI beans
can define scopes in javax.enterprise.context package
@javax.inject.Named - for use with JSF
to inject: @Inject
EJB
differs with CDI in
transactional
remote / local
able to passivate stateful beans
able to make use of timers
can be asynchronous
javax.inject.Named can be used on EJB
as well as any Qualifiers can be used on EJB
Integration of CDI / EJB
CDI / local EJB can be injected into each other