一、介绍
@Configuration
用于定义配置类,可替换xml
配置文件,被注解的类内部包含有一个或多个被@Bean
注解的方法,这些方法将会被AnnotationConfigApplicationContext
或AnnotationConfigWebApplicationContext
类进行扫描,并用于构建bean
定义,初始化Spring
容器。
说白了,@Configuration可以生产多个对象,自身类也会被实例化。而@Controllor,@Service等这些只是生成当前类一个对象
二、源码介绍
从@Configuration的源码中我们看到有@Component注解,说明被@Configuration注解的本身的类也会被实例化
@Component
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
String value() default "";
}