@EnableAutoConfigurationIn Spring Boot gibt an, wie Sie Spring konfigurieren möchten, basierend auf den Jars, die Sie in Ihrem Klassenpfad hinzugefügt haben. Wenn Sie beispielsweise spring-boot-starter-webIhrem Klassenpfad Abhängigkeiten hinzufügen , werden Tomcat und Spring MVC automatisch konfiguriert.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Sie können @EnableAutoConfigurationAnnotation zusammen mit @ConfigurationAnnotation verwenden. Es hat zwei optionale Elemente,
- ausschließen: Wenn Sie die automatische Konfiguration einer Klasse ausschließen möchten.
- excludeName: Wenn Sie die automatische Konfiguration einer Klasse unter Verwendung des vollständig qualifizierten Klassennamens ausschließen möchten.
Beispiele:
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
@EnableAutoConfiguration(excludeName = {"org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplicationist eine neuere Version, @EnableAutoConfigurationdie in Spring Boot 1.2 eingeführt wurde.
@SpringBootApplication ist eine Kombination aus drei Anmerkungen,
@Configuration - für Java-basierte Konfigurationsklassen.
@ComponentScan - Um das Scannen von Komponenten zu aktivieren, werden alle Pakete und Unterpakete automatisch gescannt, die sich unter dem Stammpaket befinden, auf das @SpringBootApplication angewendet wird.
@EnableAutoConfiguration- um die automatische Konfiguration der
Klassen zu aktivieren, basiert auf den im Klassenpfad hinzugefügten Gläsern.
@ComponentScanAktiviert das Scannen von Komponenten, sodass Webcontroller-Klassen und andere von Ihnen erstellte Komponenten im Anwendungskontext von Spring automatisch erkannt und als Beans registriert werden. Sie können die Basispakete angeben, die zur automatischen Erkennung und Registrierung von Beans gescannt werden.
Eines der optionalen Elemente ist:
- basePackages - kann verwendet werden, um bestimmte zu scannende Pakete anzugeben.
Beispiel,
@ComponentScan(basePackages = {"com.example.test"})
@Configuration
public class SpringConfiguration { }
@SpringBootApplication? Das ist ein Ersatz für die beiden, die Sie erwähnt haben