The Java EE 6 Tutorial, Volume I

About Beans

CDI redefines the concept of a bean beyond its use in other Java technologies, such as the JavaBeansTM and Enterprise JavaBeansTM (EJBTM) technologies. In CDI, a bean is a source of contextual objects that defines application state and/or logic. A Java EE component is a bean if the lifecycle of its instances may be managed by the container according to the lifecycle context model defined in the CDI specification.

More specifically, a bean has the following attributes:

A bean type defines a client-visible type of the bean. Almost any Java type may be a bean type of a bean: