我们看到在springboot的主启动类上有一个注解@SpringBootApplication
我们点击查看这个注解的源码会看到
也就是说这个注解是一个复合注解。
在这其中@SpringBootConfiguration的源码,我们点击进去再看
说明:使用了@SpringBootConfiguration注解标注的类,可以作为配置文件使用的,
可以使用Bean声明对象,注入到容器。
@EnableAutoConfiguration
启用自动配置, 把java对象配置好,注入到spring容器中。例如可以把mybatis的对象创建好,放入到容器中 。
@ComponentScan
@ComponentScan 扫描器,找到注解,根据注解的功能创建对象,给属性赋值等等。
默认扫描的包: @ComponentScan所在的类所在的包和子包。
这也就是为什么我们在上一篇中创建了一个Controller,当时没有配置componentScan的扫描包,这个Controller也同样可以被扫描到。我们可以再回过头去看一下
我们的启动类所在的包也就是有@ComponentScan注释的类的包是com.csdn.而我们的控制器所在的包为com.csdn.controller.因为其会自动寺庙com.csdn所在的包以及其子包,所以我们的Controller就会被自动扫描到了。