SpringBoot启动类详解

SpringBoot运行原理剖析

3.1 SpringApplication类作用及run()方法作用

SpringApplication这个类整合了其他框架的启动类, 只要运行这一个类,所有的整合完成.

调用run函数, 将当前启动类的字节码传入, 以及main函数的args参数

通过获取当前启动类的核心信息, 创建IOC容器.

3.2 当前启动类@SpringBootApplication详细剖析

run函数传入的当前启动类字节码, 最重要的是传入了@SpringBootApplication, 点开该注解源码, 会发现有多个注解组成,接下来会一一解释每个注解的含义.

JDK原生注解4个

@Target(ElementType.TYPE) //当前注解的使用范围

@Retention(RetentionPolicy.RUNTIME) //生命周期

扫描二维码关注公众号,回复: 10686049 查看本文章

@Documented //声明在生成doc文档时是否带着注解

@Inherited //声明是否子类会显示父类的注解

 

@SpringBootConfiguration

点开该注解源码, 会发现本质是@Configuration

提到@Configuration就要提到他的搭档@Bean, 使用这两个注解就可以创建一个简单的Spring配置类, 可以用来替代相应的xml配置文件.

@EnableAutoConfiguration

点开源码会发现,本质是@import

 

能够自动配置Spring的上下文, 视图猜测和配置你想要的bean类, 通常会自动根据你的类路径和你的bean定义自动配置.

@ComponentScan

会自动扫描指定包下的全部@Componetn的类, 并注册成bean对象.

所以,为什么启动类要创建在base包下呢?

原因就是当项目运行的时候,会自动扫描当前启动类所在包下及其子包下的所有内容.

3.3 总结

一个@SpringBootApplication注解就搞定了所有时, 它封装了核心的@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan这三个类,大大节省了程序员配置时间,这就是

————————————————

发布了46 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39038793/article/details/103016848
今日推荐