2016-04-11 6 views
2

Ich habe die AutoConfiguration-Klassen gesehen, die @Configuration innerhalb einer @Configuration definiert und das sind alle static. Warum sollten sie statisch sein? Ist es ein besserer Weg?@Configuration in @Controller oder @Configuration

Was ist der Unterschied zwischen @Configuration definiert innerhalb @Component Klasse und Stand-alone @Configuration Klasse?

Antwort

0

bei der Definition von WebMvcAutoConfigurationAdapter Werfen Sie einen Blick in den source code für WebMvcAutoConfiguration Ihre Antwort zu finden:

// Defined as a nested config to ensure WebMvcConfigurerAdapter is not read when not 
// on the classpath 
@Configuration 
@Import(EnableWebMvcConfiguration.class) 
@EnableConfigurationProperties({ WebMvcProperties.class, ResourceProperties.class }) 
public static class WebMvcAutoConfigurationAdapter extends WebMvcConfigurerAdapter { 
    ... 
} 

Die Auto-Konfiguration Klassen als verschachtelte statische Klassen definiert sind Spring Komponenten Abtastung von der Kommissionierung sie bis zu verhindern automatisch, wenn die richtige Anmerkung nicht verwendet wurde. Eine gute Faustregel wäre also, Ihre Konfigurationsklassen als eigenständige Klassen zu definieren, wenn Sie erwarten, dass sie jedes Mal verwendet werden, oder als geschachtelte statische Klassen, wenn Sie sie vom Klassenpfad-Scan isolieren möchten.

Verwandte Themen