Annotation Type EnableAutoConfiguration
@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration
Enable auto-configuration of the Spring Application Context, attempting to guess and configure beans that you are likely to need. Auto-configuration classes are usually applied based on your classpath and what beans you have defined. For example, if you havetomcat-embedded.jar
on your classpath you are likely to want aTomcatServletWebServerFactory
(unless you have defined your ownServletWebServerFactory
bean).When using
SpringBootApplication
, the auto-configuration of the context is automatically enabled and adding this annotation has therefore no additional effect.Auto-configuration tries to be as intelligent as possible and will back-away as you define more of your own configuration. You can always manually
exclude()
any configuration that you never want to apply (useexcludeName()
if you don't have access to them). You can also exclude them via thespring.autoconfigure.exclude
property. Auto-configuration is always applied after user-defined beans have been registered.The package of the class that is annotated with
@EnableAutoConfiguration
, usually via@SpringBootApplication
, has specific significance and is often used as a 'default'. For example, it will be used when scanning for@Entity
classes. It is generally recommended that you place@EnableAutoConfiguration
(if you're not using@SpringBootApplication
) in a root package so that all sub-packages and classes can be searched.Auto-configuration classes are regular Spring
Configuration
beans. They are located using theSpringFactoriesLoader
mechanism (keyed against this class). Generally auto-configuration beans are@Conditional
beans (most often using@ConditionalOnClass
and@ConditionalOnMissingBean
annotations).
Field Summary
Fields Modifier and Type Fields Description static String
ENABLED_OVERRIDE_PROPERTY
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description Class<?>[]
exclude
Exclude specific auto-configuration classes such that they will never be applied.String[]
excludeName
Exclude specific auto-configuration class names such that they will never be applied.
Field Detail
ENABLED_OVERRIDE_PROPERTY
static final String ENABLED_OVERRIDE_PROPERTY
excludeName
String[] excludeName
Exclude specific auto-configuration class names such that they will never be applied.- Returns:
- the class names to exclude
- Since:
- 1.3.0
- Default:
- {}