首页 > 解决方案 > 在一个类上声明@configuration 会使其成为一个spring bean吗?

问题描述

我有一个弹簧启动项目,我有一个用@configuration注释声明的类。将声明一个类@configuration使其成为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());

    }
}

DateTimeFormatConfiguration上面的代码会导致启动时在应用上下文中创建一个spring bean吗?

标签: springspring-bootjavabeans

解决方案


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

当@Configuration 类作为输入提供时,@Configuration 类本身被注册为 bean 定义,并且类中所有声明的 @Bean 方法也被注册为 bean 定义。

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


推荐阅读