首先@SpringBootApplication=@ComponentScan+@SpringBootConfiguration+@EnableAutoConfiguration,然后我们分别详细了解下每个注解的用法。

  1. @ComponentScan:spring中的@Service、Controller、@Component都是用来定义一个bean的,@ComponentScan注解就是用来自动扫描被这些注解标识的类,最终生成ioc容器里的bean,它默认扫描同级和当前包下的bean,这也就是xxxApplication启动类一般放在根目录的原因了。当然还可以@ComponentScan(value = "io.mieux.controller")这样使用,指明扫描某个包。
  2. @SpringBootConfiguration:@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
  3. @EnableAutoConfiguration:此注释自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。

Q.E.D.


一个热爱生活的95后精神小伙