索引
springboot应用的启动类一般都会被@SpringBootApplication注解修饰上,那这个到底是什么含义呢?我们来看看源码
从源码可以看到,主要是这么三个作用:
@SpringBootConfiguration
这个注解其实就是spring的@Configuration注解的子类,功能一模一样。@Configuration在spring的包内,@SpringBootConfiguration在springboot的包内。使用了这个注解的类,再在方法上使用@Bean的时候,spring可以将方法返回的类作为类注册在bean容器中:
@Configuration public class AppConfig { // 这个方法返回的MyBean类,就会被注册在bean容器中,然后就可以被注入到需要的地方了 @Bean public MyBean myBean() { // instantiate, configure and return bean ... } }
@EnableAutoConfiguration
这个类会开启自动配置,即springboot的主打功能:“约定大于配置”。即有了这个注解,springboot会加载默认配置让程序跑起来。
@ComponentScan
这个注解就是可以自动扫描被@Conponent、@Service等注解修饰的类,将其注册为spring bean。
以上,就是@SpringBootApplication注解的功能。自动扫描注册、自动配置、导入其他配置类。
综上可以看出,如果我们直接使用@SpringBootAplication、@EnableAutoConfiguration、@ComponentScan也是可以达到效果的,并不一定非要使用@SpringBootApplication,不过既然有一个大而全的只需要声明一次就可以,就不用麻烦的声明3次了。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2052