Annotation Type Inject


  • @Target({PARAMETER,FIELD,CONSTRUCTOR})
    @Retention(RUNTIME)
    @Documented
    @UseWith({COMPONENT,MIXIN,PAGE,SERVICE})
    public @interface Inject
    This annotation serves is something of the Swiss Army knife for operations related to injection of dependencies into an arbitrary method of Java Bean. It marks parameters that should be injected in the IoC container, and it marks fields that should be injected inside Tapestry components. In terms of the IoC container; normally, resources take precedence over annotations when injecting. The Inject annotation overrides this default, forcing the resolution of the parameters value via the master ObjectProvider, even when the parameter's type matches a type that is normally a resource. For service implementations, module classes, and other objects constructed via ObjectLocator#autobuild(Class), this annotation indicates that an injection is desired on the field, as with fields of a Tapestry component. In terms of the IoC container, the Inject annotation is only used on parameters to service builder methods (and contributor and decorator methods) and on module class constructors. constructors. However, inside Tapestry components (and only inside components), it may be applied to fields. On fields that require injection, the Inject annotation is required. Finally, on a constructor, this is used to indicate which constructor should be used when more than one is available.
    See Also:
    ObjectProvider