All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.factories.annotations.Inject Maven / Gradle / Ivy

There is a newer version: 15.1.0.Dev04
Show newest version
package org.infinispan.factories.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Used to annotate a method or field as an injection point.
 *
 * 

The method or field must not be {@code 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 {@link Start} method since this is only * called once when a component starts. * * @author Manik Surtani * @since 4.0 */ // ensure this annotation is available at runtime. @Retention(RetentionPolicy.CLASS) @Target({ ElementType.METHOD, ElementType.FIELD }) public @interface Inject { }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy