Springboot@Configuration和@Bean详解

Springboot@Configuration和@Bean详解

1、@Configuration

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";
}

能够看到在@Configuration注解中是包含@Component注解的,被@Configuration修饰的类被定义为一个Spring容器(应用上下文)spa

@Configuration就至关于Spring配置文件中的<beans />标签,里面能够配置beanprototype

2、@Bean

@Bean至关于Spring配置文件中的<bean />标签能够在Spring容器中注入一个beancode

@Configuration
public class TestConfiguration {

    @Bean
    public TestBean testBean() {
        return new TestBean();
    }

}

上述代码至关于实例化一个TestBean并交给Spring容器管理blog

ps: 作用域

一、@Bean注解在返回实例的方法上,若是未经过@Bean指定bean的名称,则默认与方法名相同get

二、@Bean注解默认做用域为单例singleton做用域,可经过@Scope(“prototype”)设置为多例io

3、依赖注入

@Configuration
public class TestConfiguration {

    @Bean
    public TestBean testBean() {
        return new TestBean();
    }

    @Bean
    public DIBean diBean() {
        return new DIBean(testBean());
    }  

}

如上述代码,经过在@Bean方法中调用其余@Bean注解的方法来实现依赖注入class

 ps:test

当须要强制指定实例化bean的顺序,能够经过@Order或@DependsOn注解来实现容器

相关文章
相关标签/搜索