New
Date: 2015-09-11

javax.enterprise.inject

## Annotation Type New

-     @Target(value={FIELD,PARAMETER,METHOD,TYPE})
      @Retention(value=RUNTIME)
      @Documented
      @Qualifier
      public @interface New

  The built-in qualifier type.

  The `@New` qualifier allows the application to obtain a new instance of a bean which is not bound to the declared scope, but has had dependency injection performed.

       @Produces @ConversationScoped
       @Special Order getSpecialOrder(@New(Order.class) Order order) {
          ...
          return order;
       }

  When the `@New` qualifier is specified at an injection point and no `value` member is explicitly specified, the container defaults the `value` to the declared type of the injection point. So the following injection point has qualifier `@New(Order.class)`:

       @Produces @ConversationScoped
       @Special Order getSpecialOrder(@New Order order) { ... }

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `java.lang.Class<?>` | `value` Specifies the bean class of the new instance.

- - ### Element Detail

    - #### value

          public abstract java.lang.Class<?> value

      Specifies the bean class of the new instance. The class must be the bean class of an enabled or disabled bean. The bean class need not be deployed in a bean archive.

      Defaults to the declared type of the injection point if not specified.

      Returns:
        the bean class of the new instance
      Default:
        javax.enterprise.inject.New.class