首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >何时使用@ImportAutoConfiguration与@Import

何时使用@ImportAutoConfiguration与@Import
EN

Stack Overflow用户
提问于 2019-12-22 13:39:25
回答 1查看 2.8K关注 0票数 4

我不太清楚什么时候使用其中一种和另一种。从我尝试过的事情看,他们两人的行为似乎是一样的。到底有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-22 18:20:30

基本上,@Import注释导入一个或多个@Configuration类,这些类可以声明一个或多个@Bean方法。

然而,@ImportAutoConfiguration注释导入并应用指定的自动配置类.

关于@ImportAutoConfiguration和@Import的更详细比较

@进口

  • 指示要导入的一个或多个组件类--通常是@配置类。
  • 这是来自spring-context模块的注释
  • 一个简单的例子,假设您有这些配置类, UserConfig @Configuration公共类UserConfig { @Bean(name=" User ")公共用户userConfigure(){返回新用户();} SchedulerConfig @Configuration公共类SchedulerConfig {@Bean(name=“调度器”)公共调度cheduleConfigure(){返回新调度();} AppConfig 使用@Import注释导入那些配置类 @Configuration @Import({ UserConfig.class,SchedulerConfig.class })公共类AppConfig {}

@ImportAutoConfiguration

  • 导入并应用指定的自动配置类
  • 这是一个来自spring引导自动配置模块的注释。
  • 它表示一种基于类路径上存在的依赖项自动配置Spring应用程序的方法。
  • 因为它来自spring-boot模块--您只能在Spring-Boot applications中使用这个注释
  • 它可以非常有用,特别是在编写测试时。
  • 一个简单的例子, 与@Import部分一样,我们还需要在这里创建带有@Configuration注释的类。与上面的@Import示例不同,您可以在您的org.springframework.boot.autoconfigure.condition类上使用不同的auto-configuration s (ConditionalOnProperty、ConditionalOnResource、ConditionalOnBean、ConditionalOnMissingBean等)。 @ConditionalOnProperty(前缀= "my.data.base.config",name = "enable",havingValue = "true")公共类DataAutoConfiguration { @Bean @ConfigurationProperties(前缀= "my.data.base")公共DataService dataService() {返回新DataService();}} 使用@ImportAutoConfiguration注释导入自动配置 @Configuration @ImportAutoConfiguration(DataAutoConfiguration.class)公共类MyDatabaseAutoconfiguration {//.} 现在您需要在resources/META-INF/spring.factories文件中注册它, org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.your.package.autoconfiguration.MyDatabaseAutoconfiguration 要启用自动配置,可以使用@SpringBootApplication或@EnableAutoConfiguration注释之一。 @SpringBootApplication公共类AutoconfigurationApplication {公共静态空主(String[] args) {String[] args);}

更多参考资料

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59444679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档