@SpringBootConfiguration和@Configuration有什么区别?

24
@SpringBootConfiguration@Configuration有什么区别?我找不到太多细节信息。
3个回答

15
根据 Springboot 文档(如下所示),@Configuration@SpringBootConfiguration 的一部分,最终具备了 @SpringBootApplication 注解。
@SpringBootApplication
-------> @SpringBootConfiguration
       -------> @Configuration

@SpringBootApplication

Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
        @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM,
                classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
...}

@SpringBootConfiguration

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {

}

@配置

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Component
    public @interface Configuration {
}

5

SpringBootConfiguration

表示一个类提供了Spring Boot应用的@Configuration。可以作为替代Spring标准@Configuration注释,以便配置可以自动找到(例如在测试中)。 应用程序应该只包括一个@SpringBootConfiguration,大多数习惯用语的Spring Boot应用程序将从@SpringBootApplication继承它。

源代码

SpringBootConfiguration文档


3

1
嗨,我不太理解这个语句:“两者之间唯一的区别在于@SpringBootConfiguration允许自动找到配置。”你能给我一个例子吗? - Andy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接