Annotation Interface Inject


@Retention(CLASS) @Target({METHOD,FIELD}) public @interface Inject
Used to annotate a method or field as an injection point.

The method or field must not be private, usually it's best to have it package-private.

Usage example:

      public class MyClass
      {
         private TransactionManager tm;
         private BuddyManager bm;
         private Notifier n;

         &Inject
         public void setTransactionManager(TransactionManager tm)
         {
            this.tm = tm;
         }

         &Inject
         public void injectMoreStuff(BuddyManager bm, Notifier n)
         {
            this.bm = bm;
            this.n = n;
         }
      }
and an instance of this class can be constructed and wired using
      MyClass myClass = componentRegistry.getComponent(MyClass.class);
Methods annotated with this Inject annotation should *only* set class fields. They should do nothing else. If you need to do some work to prepare the component for use, do it in a Start method since this is only called once when a component starts.
Since:
4.0
Author:
Manik Surtani