javax.enterprise.inject

## Annotation Type Specializes

-     @Target(value={TYPE,METHOD})
      @Retention(value=RUNTIME)
      @Documented
      public @interface Specializes

  Indicates that a bean directly specializes another bean. May be applied to a bean class or producer method.

  If a bean directly specializes a second bean, it inherits:

  - all qualifiers of the second bean, and
  - the name, if any, of the second bean.

  If the second bean has a name, the bean may not declare a name using `@Named`. Furthermore, the bean must have all the bean types of the second bean.

  - If a bean class of a managed bean is annotated `@Specializes` , then the bean class must directly extend the bean class of a second managed bean. Then the first managed bean directly specializes the second managed bean.
  - If a bean class of a session bean is annotated `@Specializes` , then the bean class must directly extend the bean class of a second session bean. Then the first session bean directly specializes the second session bean.
  - If a producer method is annotated `@Specializes`, then it must be non-static and directly override another producer method. Then the first producer method directly specializes the second producer method.

  If a bean is specialized by any enabled bean, the first bean is disabled.

  Author:
    Gavin King, Pete Muir

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.