@SpringBootConfiguration与@Configuration有什么区别?

Far*_*raz 5 spring spring-boot

@SpringBootConfiguration和之间有什么区别@Configuration?我找不到很多细节。

Pat*_*mil 7

根据 Spring Boot Document (hierarchy below),我们可以说@Configuration是其中的一部分@SpringBootConfiguration最终拥有@SpringBootApplication

@SpringBootApplication
-------> @SpringBootConfiguration
       -------> @Configuration
Run Code Online (Sandbox Code Playgroud)

@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 {
...}
Run Code Online (Sandbox Code Playgroud)

@SpringBootConfiguration

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

}
Run Code Online (Sandbox Code Playgroud)

@配置

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Component
    public @interface Configuration {
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*ohx 6

SpringBoot配置

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

来源

SpringBootConfiguration 文档