@EnableAutoConfiguration
In 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-web
Ihrem 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 @EnableAutoConfiguration
Annotation zusammen mit @Configuration
Annotation 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);
}
}
@SpringBootApplication
ist eine neuere Version, @EnableAutoConfiguration
die 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.
@ComponentScan
Aktiviert 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