Annotation Type SpringResource


  • @Documented
    @Retention(RUNTIME)
    @Target({METHOD,FIELD})
    public @interface SpringResource
    Annotates a field or a setter method for injection of resource from Spring ApplicationContext. Use it whenever you would like to inject resources specified in Spring application context of XML configuration.

    Logger can be injected into instances of following classes:

    Resource Name

    This is a mandatory parameter. Resource name will be used to access Spring resources from Spring ApplicationContext or XML configuration.

    Note that Spring resources cannot be peer-class-loaded. They must be available in every ApplicationContext or Spring XML configuration on every grid node. For this reason, if injected into a Serializable class, they must be declared as transient.

    The lifecycle of Spring resources is controlled by Spring container.

    Examples

    Here is how injection would typically happen:
     public class MyGridJob implements ComputeJob {
          ...
          @SpringResource(resourceName = "bean-name")
          private transient MyUserBean rsrc;
          ...
      }
     
    or
     public class MyGridJob implements ComputeJob {
         ...
         private transient MyUserBean rsrc;
         ...
         @SpringResource(resourceName = "bean-name")
         public void setMyUserBean(MyUserBean rsrc) {
              this.rsrc = rsrc;
         }
         ...
     }
     
    and user resource MyUserResource
     public class MyUserResource {
         ...
         @SpringResource(resourceName = "bean-name")
         private MyUserBean rsrc;
         ...
         // Inject logger (or any other resource).
         @LoggerResource
         private IgniteLogger log;
    
         // Inject ignite instance (or any other resource).
         @IgniteInstanceResource
         private Ignite ignite;
         ...
     }
     
    where spring bean resource class can look like this:
     public class MyUserBean {
         ...
     }
     
    and Spring file
     <bean id="bean-name" class="my.foo.MyUserBean" singleton="true">
             ...
     </bean>
     
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean required
      Determines whether the injection procedure should fail in case no beans with specified name or type are present in the Spring Context.
      Class<?> resourceClass
      Resource bean class in provided ApplicationContext to look up a Spring bean.
      String resourceName
      Resource bean name in provided ApplicationContext to look up a Spring bean.
    • Element Detail

      • resourceName

        String resourceName
        Resource bean name in provided ApplicationContext to look up a Spring bean.
        Returns:
        Resource bean name.
        Default:
        ""
      • resourceClass

        Class<?> resourceClass
        Resource bean class in provided ApplicationContext to look up a Spring bean.
        Returns:
        Resource bean class.
        Default:
        org.apache.ignite.resources.SpringResource.DEFAULT.class
      • required

        boolean required
        Determines whether the injection procedure should fail in case no beans with specified name or type are present in the Spring Context.
        Returns:
        Whether absence of the bean with specified parameters will result in NoSuchBeanDefinitionException.
        Default:
        true