Annotation Type Bean


  • @Target(TYPE)
    @Retention(RUNTIME)
    @Inherited
    @Documented
    public @interface Bean
    Defines name of bean.

    This annotation is not required, but each bean must be named! Instead of using annotation, name of bean may be defined during registration.

    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      boolean active
      Is active by default.
      java.lang.String name
      Name of bean.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean exportable
      Is bean exportable? *
      Exportable beans are available not only in the context of a kernel in which they are registered but are available also to all beans registered in subkernels.
      java.lang.Class parent
      Class of a parent bean.
      java.lang.Class[] parents
      Classes of parent beans.
      java.lang.Class<? extends BeanSelector>[] selectors
      Automatic registration selectors.
    • Element Detail

      • name

        java.lang.String name
        Name of bean. *
        This name will be used to find bean and load configuration for the bean.
        Returns:
        name of bean.
      • active

        boolean active
        Is active by default. *
        • true if annotated bean (if registered) should be active (automatically loaded if required);
        • false if annotated bean will not be automatically loaded, even if it will be registered. It will require manual activation in the configuration.
        Returns:
        true if bean should be automatically loaded
      • exportable

        boolean exportable
        Is bean exportable? *
        Exportable beans are available not only in the context of a kernel in which they are registered but are available also to all beans registered in subkernels.
        Returns:
        true if bean should be available also in subkernels
        Default:
        false
      • parent

        java.lang.Class parent
        Class of a parent bean. *
        Returns parent class for which this bean should always be registered. *
        Following cases are supported:
        • Object if bean should never be automatically registered
        • Kernel if bean should be automatically registered in the main/root kernel
        • class implementing RegistrarBean if bean should be loaded automatically for that class
        Returns:
        parent class for which this class should be automatically registered
        Default:
        java.lang.Object.class
      • parents

        java.lang.Class[] parents
        Classes of parent beans. *
        In some cases same beans should be automatically registered for more than one class. This method allows to return more than one class.
        Returns:
        array of classes for which this class should be automatically registered
        See Also:
        parent()
        Default:
        {}
      • selectors

        java.lang.Class<? extends BeanSelector>[] selectors
        Automatic registration selectors. *
        In some cases it is required/useful to decide if beans should be registered automatically depending on more global configuration option. This method returns array of BeanSelector classes which provide a logic deciding if bean should be automatically loaded or not. *
        Will only work if parent() or parents() returns correct values.
        Returns:
        array of classes deciding if bean should be automatically loaded.
        Default:
        {}