【每日阅读】2020年7月11日-@SpringBootApplication起什么作用?

真诚的希望您能留言与我交流,这会对我有非常大的帮助!

springboot应用的启动类一般都会被@SpringBootApplication注解修饰上,那这个到底是什么含义呢?我们来看看源码

【每日阅读】2020年7月11日-@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

发表评论

登录后才能评论
GitHub
分享本页
返回顶部