在 class 上声明 @configuration 会使它成为 spring bean 吗?

Will declaring @configuration on a class make it a spring bean?

我有一个 spring 引导项目,并且我有一个 class 声明并带有 @configuration 注释。 用 @configuration 声明 class 会使它成为 spring bean 吗?下面是我的代码

@Configuration
public class DateTimeFormatConfiguration extends WebMvcConfigurerAdapter {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
        registrar.setUseIsoFormat(true);
        registrar.registerFormatters(registry);
    }

    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        argumentResolvers.add(new PaginationArgumentResolver());
        argumentResolvers.add(new FlightFilterArgumentResolver());
        argumentResolvers.add(new CampaignFilterArgumentResolver());
        argumentResolvers.add(new ContactListFilterArgumentResolver());
        argumentResolvers.add(new UserFilterArgumentResolver());
        argumentResolvers.add(new PrimecastAccountFilterArgumentResolver());
        argumentResolvers.add(new MessageHistoryFilterArgumentResolver());

    }
}

上面的代码是否会在启动时在应用程序上下文中创建一个 spring bean DateTimeFormatConfiguration

是的。 @Configuration 注释 class 将注册为 spring bean。从文档中检查以下片段。 @configuration 的主要目的是充当 bean 源。

When @Configuration classes are provided as input, the @Configuration class itself is registered as a bean definition, and all declared @Bean methods within the class are also registered as bean definitions.

[1] https://docs.spring.io/spring/docs/4.3.25.RELEASE/spring-framework-reference/htmlsingle/#beans-java-basic-concepts