Keep in mind that a Java EE 5 platform
container can handle the injections
transparently only when they are used
on container-managed components, such
as EJB beans, Servlets, and JavaServer
Pages (JSP) technology tag handlers.
This is for two reasons. First, for
performance considerations, a
container can restrict its search of
annotations only to the components it
manages, which are defined in a
deployment descriptor or are
accessible in specific classpath
locations. Second, the container must
have control over the creation of the
component to be able to transparently
perform the injection into the
component.