栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring流程版本一<极简版本>

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring流程版本一<极简版本>

spring流程
  • 类比
  • IOC<控制反转>
  • spring的极简流程
    • 学校需要新建人员信息库保存信息
    • 学校的人员将个人信息交给学校管理局
      • 学校管理局提供信息方式一:xml文件
      • 学校管理局提供信息方式二:注解
      • 未来教育局提供的第三种规范:谁知道呢
    • 学校将学校管理局提供信息添加到学校人员信息中
    • 学校开学,学校校车出动接学生上学
  • bean实例化流程
    • 反射完成实例化<极简版本>
  • 收尾

类比

为了了解spring流程,需要接受、了解、熟悉很多未知的定义,在此使用 学校 作为辅助,帮助我们了解spring。
<此版本中只有学校和学生,其他内容后续添加>

学校spring
学校管理局开发人员
学校信息ApplicationContext
学校人员信息库DefaultListableBeanFactory
人员bean
人员信息BeanDefinition
IOC<控制反转>

学校开学了,学生需要自己上学。如果学生第一天上学不认路走丢了,没有到学校。
学校表示:这跟我没关系,不是我的责任;
家长说:不行,这就是学校的责任。
学校管理局说:这就是学校的责任,学校想办法解决。

学校决定:自己出动校车,开学时把所有学生通过校车接到学校,教学生认路。
这就是控制反转:spring 通过反射/其他方式完成对象的实例化。

spring的极简流程 学校需要新建人员信息库保存信息

spring 创建 BeanFactory

AbstractApplicationContext 类中的 obtainFreshBeanFactory 方法,
返回 DefaultListableBeanFactory<学校人员信息库>
学校的人员将个人信息交给学校管理局

学校管理局制定信息规范,要求:
学生家长、老师按照规范提供信息;
学校按照规范自定义规范解析方法<将信息解析为人员信息BeanDefinition,保存到人员信息库DefaultListableBeanFactory>

学校管理局提供信息方式一:xml文件

19世纪教育局<开发人员>定义了xml信息规范。

学生家长、老师提供人员信息规范:
xml文件标签 

学校自定义xml信息规范解析工具:
xml文件解析器:XmlBeanDefinitionReader
学校管理局提供信息方式二:注解

20世纪教育局<开发人员>定义了注解规范。

学生家长、老师提供人员信息规范:
注解: @Bean、@Component

学校自定义xml信息规范解析工具:
注解解析器:ConfigurationClassParser中扫描@ComponentScan时,会将有@Component注解类,生成BeanDefinition对象
未来教育局提供的第三种规范:谁知道呢 学校将学校管理局提供信息添加到学校人员信息中
DefaultListableBeanFactory的
beanDefinitionNames   学生名字
beanDefinitionMap     key:学生名字;value:学生信息
学校开学,学校校车出动接学生上学

spring启动

spring实例化过程
根据DefaultListableBeanFactory的
beanDefinitionNames和beanDefinitionMap
完成bean的实例化

调用getBean、doGetBean、createBean、doCreateBean完成bean的实例化
其中使用反射方法创建bean时,遵循bean的实例化流程
bean实例化流程 反射完成实例化<极简版本>

1、调用构造方法完成实例化

doCreateBean方法中的createBeanInstance完成bean的实例化

2、调用set方法完成属性注入

doCreateBean方法中的populateBean完成bean的属性注入

3、调用init方法完成初始化

doCreateBean方法中的initializeBean完成bean的初始化
收尾

臭弟弟在 马士兵教学中,看完了连鹏举老师的spring视频,自我总结极简版本spring,有不足之处,可以多多交流。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631254.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号