According to the CDI specification:
A bean comprises the following attributes:
Furthermore, a bean may or may not be an alternative.
In most cases, beans acquire references to other beans through dependency injection. The point at which a bean is injected will specify the type of that bean and a set of qualifiers. With the help of the bean type and qualifiers, Weld determines the implementation of a bean to provide for injection.
A bean type can be a class or interface that is visible to clients that wish to inject it. For instance, an EJB Session Bean implementation ...