之間的區別,這是真的org.springframework.boot.autoconfigure.ImportAutoConfiguration
提高替代org.springframework.context.annotation.Import
因爲做同樣的,另外尊重是什麼@ImportAutoConfiguration和@Import
@AutoConfigureBefore
,@AutoConfigureAfter
和@AutoConfigureOrder
?
之間的區別,這是真的org.springframework.boot.autoconfigure.ImportAutoConfiguration
提高替代org.springframework.context.annotation.Import
因爲做同樣的,另外尊重是什麼@ImportAutoConfiguration和@Import
@AutoConfigureBefore
,@AutoConfigureAfter
和@AutoConfigureOrder
?
難道
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配置。
假設我有這裏提供的應用程序應用程序作爲示例。如果我通過「導入」替換「ImportAutoConfiguration」,會發生什麼變化? – michaldo
我用'@ Import'試過了,沒有改變。所有的bean都被創建並且所有的配置都被執行。 –
我其實也對使用這兩個註釋之間真正的技術差異感興趣。 –