2017-04-27 85 views
3

之間的區別,這是真的org.springframework.boot.autoconfigure.ImportAutoConfiguration提高替代org.springframework.context.annotation.Import因爲做同樣的,另外尊重是什麼@ImportAutoConfiguration和@Import

@AutoConfigureBefore@AutoConfigureAfter@AutoConfigureOrder

回答

0

難道 org.springframework.boot.autoconfigure.ImportAutoConfiguration是 爲 org.springframework.context.annotation.Import改進更換?

不,它不是替代品,因爲@ImportAutoConfiguration是Spring Boot的特定註釋,我可以稱之爲增強。但是,儘管看起來你可以在使用Spring Boot時交替使用它們,但我不會建議它。按照打算使用它們的方式使用它們。


當您不想啓用 @EnableAutoConfiguration的默認自動配置時,您將使用 @ImportAutoConfiguration。您可能知道, @EnableAutoConfiguration試圖配置位於類路徑中的bean,例如tomcat-embedded.jar。而 @ImportAutoConfiguration只運行您在註釋中提供的配置類。

這是一個春天啓動應用程序的主要方法與@ImportAutoConfiguration一個例子:

@ComponentScan("path.to.your.controllers") 
@ImportAutoConfiguration({WebMvcAutoConfiguration.class 
    , DispatcherServletAutoConfiguration.class 
    , EmbeddedServletContainerAutoConfiguration.class 
    , ServerPropertiesAutoConfiguration.class 
    , HttpMessageConvertersAutoConfiguration.class}) 
public class App { 
    public static void main(String[] args) { 
    SpringApplication.run(App.class, args); 
    } 
} 

你可能會說,這是使用@EnableAutoConfiguration替代。在這種情況下配置準系統嵌入式Tomcat和Spring WebMVC。


@Import用於導入標記爲 @Configuration的bean配置類,其中包含您的自定義bean配置。

+0

假設我有這裏提供的應用程序應用程序作爲示例。如果我通過「導入」替換「ImportAutoConfiguration」,會發生什麼變化? – michaldo

+0

我用'@ Import'試過了,沒有改變。所有的bean都被創建並且所有的配置都被執行。 –

+0

我其實也對使用這兩個註釋之間真正的技術差異感興趣。 –

相關問題