我不太清楚什么时候使用其中一种和另一种。从我尝试过的事情看,他们两人的行为似乎是一样的。到底有什么区别?
发布于 2019-12-22 18:20:30
基本上,@Import注释导入一个或多个@Configuration类,这些类可以声明一个或多个@Bean方法。
然而,@ImportAutoConfiguration注释导入并应用指定的自动配置类.
关于@ImportAutoConfiguration和@Import的更详细比较
@进口
spring-context
模块的注释@ImportAutoConfiguration
spring-boot
模块--您只能在Spring-Boot applications
中使用这个注释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);}更多参考资料
https://stackoverflow.com/questions/59444679
复制相似问题