1.先整理分析技术栈类型
分析一下父工程pom文件
瞜一眼都大致引用了哪些jar包啊,插件啊
2.剖析项目结构
理清继承依赖关系
梳理具体业务包结构
看看parent中引入的版本
3.build中的构建springBoot插件的作用
打包插件
集成环境
加载引导类
spring-boot-starter-2.4.3.pom
spring-boot-deoendencies-2.4.3.pom
springboot统一配置了包的引用,
最优解包版本配置,保证不会发生版本冲突
springboot启动类
5.修改配置参数
springBoot默认的配置参数存放位置application.propertiest(用的地方不用导入直接注入)
springboot 属性注入的三种组合方式
1.配置类要注入的属性上 加@Value("${前缀xxx}")
中使用值注入
2.@enableConfigurationProperties(pojo.class)使用在启动类上
和配置类中configurationProperties(prefix=“xxx前缀”)
3.不用配置类(推荐 更符合软件开闭原则 一次配置)
直接在标准类上使用@ConfigurationProperties(prefix=“”)
启动类上使用@ConfigurationPropertiesScan
三种属性值的注入方式:
@value
@enableConfigurationProperties
@ConfigurationPropertiesScan
SpringBoot自动装配
Spring自己的和Spring支持整合的第3方的包,自己不用装配,框架底层帮你做好了
具体的是如何装配的呢?大致分为:
第三方的包 自动装配底层找到各个jar包的META-INF 下spring.factories 与
@ConditionOnXXX条件注解 一 一比对满足则装配
Spring家族的包 自动装配找到AutoConfig下的META-INF下 的spring.factores 中一堆然后载入
SpringBOOT启动Tomcat过程(难。。。没淦太懂)
追踪源码
非核心部分选择性跳过
计时器stopWatch
SpringApllication
追踪源码时的快捷键:ctrl+alt ←或→ 调回或前进
ConfigurableApplicationContext
314line
prepareContext
☆refreshContext
快捷键:ctrl + alt +B 查看接口实现类
flux响应式编程
afterContext
registerShutdown 优雅关机
☆springIOC
☆ServletWebServerApplicationContext
基于Spring的IOC容器技术 底层加载调用了加载“onRefresh” new 了一个Tomcat (实例化了一个)然后调用 启动Tomcat.Start()
Springboot整合mybatis-plaus、vue的步骤
构建SpringBootboot项目