Annotation Interface AutoConfiguration


@Target(TYPE) @Retention(RUNTIME) @Documented @Configuration(proxyBeanMethods=false) @AutoConfigureBefore @AutoConfigureAfter public @interface AutoConfiguration
Indicates that a class provides configuration that can be automatically applied by Spring Boot. Auto-configuration classes are regular @Configuration with the exception that Configuration#proxyBeanMethods() proxyBeanMethods is always false. They are located using ImportCandidates.

Generally auto-configuration classes are marked as @Conditional (most often using @ConditionalOnClass and @ConditionalOnMissingBean annotations).

Since:
2.7.0
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Class<?>[]
    The auto-configure classes that should have already been applied.
    The names of the auto-configure classes that should have already been applied.
    Class<?>[]
    The auto-configure classes that should have not yet been applied.
    The names of the auto-configure classes that should have not yet been applied.
    Explicitly specify the name of the Spring bean definition associated with the @AutoConfiguration class.
  • Element Details

    • value

      @AliasFor(annotation=org.springframework.context.annotation.Configuration.class) String value
      Explicitly specify the name of the Spring bean definition associated with the @AutoConfiguration class. If left unspecified (the common case), a bean name will be automatically generated.

      The custom name applies only if the @AutoConfiguration class is picked up through component scanning or supplied directly to an AnnotationConfigApplicationContext. If the @AutoConfiguration class is registered as a traditional XML bean definition, the name/id of the bean element will take precedence.

      Returns:
      the explicit component name, if any (or empty String otherwise)
      See Also:
      • AnnotationBeanNameGenerator
      Default:
      ""
    • before

      @AliasFor(annotation=AutoConfigureBefore.class, attribute="value") Class<?>[] before
      The auto-configure classes that should have not yet been applied.
      Returns:
      the classes
      Default:
      {}
    • beforeName

      @AliasFor(annotation=AutoConfigureBefore.class, attribute="name") String[] beforeName
      The names of the auto-configure classes that should have not yet been applied.
      Returns:
      the class names
      Default:
      {}
    • after

      @AliasFor(annotation=AutoConfigureAfter.class, attribute="value") Class<?>[] after
      The auto-configure classes that should have already been applied.
      Returns:
      the classes
      Default:
      {}
    • afterName

      @AliasFor(annotation=AutoConfigureAfter.class, attribute="name") String[] afterName
      The names of the auto-configure classes that should have already been applied.
      Returns:
      the class names
      Default:
      {}