2017-04-27 418 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

我其实也对使用这两个注释之间真正的技术差异感兴趣。 –

相关问题