springboot 自动装配原理详解

从@SpringBootApplication开始

这是一个复合注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
({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 {
...
}

@SpringBootConfiguration

这也是一个复合注解

1
2
3
4
5
6
({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}

实质就是@Configuration 一般用于快速配置ioc容器