拉勾网《32个Java面试必考点》学习笔记之八------必会框架1️⃣一Spring全家桶

本文为拉勾网《32个Java面试必考点》学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频《32个Java面试必考点》.若本文侵犯了相关所有者的权益,请联系:txzw@live.cn.将会删除相关内容

知识点汇总

常用框架

知识点详解

Spring

Spring中的基本概念
  • IOC/DI
    • 对象的属性由自己创建,为正向流程,而由Spring创建,为控制反转.
    • DI(依赖注入)为实现IOC的一种方式,通过配置文件或注解包含的依赖关系创建与注入对象.
    • 正向流程导致了对象与对象之间的高耦合,IOC可以解决对象耦合的问题,有利于功能的复用
例如,招聘中,公司按岗位要求安排人选为正向流程,反之,由第三方猎头匹配岗位和候选人,并向公司推荐,则为控制反转
  • Context&Bean

    • 所有由Spring创建,管理,用于依赖注入的对象,称为Bean
    • 所有Bean创建并完成依赖注入后,都会放入Context上下文中进行管理
  • AOP(Aspect Oriented Programming 面向切面编程)

    • 以功能进行划分,对服务顺序执行流程中的位置进行横切,完成各服务共同需要实现的功能
Spring框架

Spring框架组件
重点了解一下几点

  • Core
    • Spring组件的核心
  • Beans和Context
    • 实现IOC/DI的基础
  • Web
    • 包括SpringMVC是Web服务的控制层实现
  • AOP
    • 面向切面编程
Spring机制与实现

Spring机制与实现

Spring应用

Spring应用

Spring Context初始化流程

SpringContext初始化流程

  1. prepareRefresh();对刷新进行准备,包括设置开始时间,设置激活状态,初始化Context中的占位符,子类根据其需求执行具体准备工作,而后再由父类验证必要参数

  2. obtianFreshBeanFactory();,刷新并获取内部的BeanFactory对象

  3. prepareBeanFactory(beanFactory);,对BeanFactory进行准备工作,包括设置类加载器和后置处理器,配置不能自动装配的类型,注册默认的环境Bean

  4. postProcessBeanFactory(beanFactory);为Context的子类提供后置处理BeanFactory的扩展能力,如想在bean定义加载完成后,开始初始化上下文之前进行逻辑操作,可重写这个方法

  5. invokeBeanFactoryPostProcessors(beanFactory);,执行Context中注册的BeanFactory后置处理器,有两张处理器,一种是可以注册Bean的后置处理器,一种的针对BeanFactory的后置处理器,执行顺序是先按优先级执行注册Bean的后置处理器,而后再按优先级执行针对BeanFactory的后置处理器

     SpringBoot中会进行注解Bean的解析,由ConfigurationClassPostProcessor触发,由ClassPathDefinitionScanner解析,并注册到BeanFactory
    
  6. registerBeanFactoryProcessor(beanFactory();,按优先级顺序在BeanFactory中注册Bean的后置处理器,Bean处理器可在Bean的初始化前后处理

  7. initMessageSource();初始化消息源,消息源用于支持消息的国际化

  8. initApplicationEventMuticaster();初始化应用事件广播器,用于向ApplicationListener通知各种应用产生的事件,标准的观察者模型

  9. onRefresh();,用于子类的扩展步骤,用于特定的Context子类初始化其他的Bean

  10. registerListeners();,把实现了ApplicationListener的类注册到广播器,并对广播其中早期没有广播的事件进行通知

  11. finishBeanFactoryInitialization(beanFactory);,冻结所有Bean描述信息的修改,实例化非延迟加载的单例Bean

  12. finishRefresh();,完成上下文的刷新工作,调用LifecycleProcessor.onRefresh(),以及发布
    ContextRefreshedEvent事件

  13. resetCommonCaches();在finally中执行该步骤,重置公共的缓存,如ReflectionUtils中的缓存,
    AnnotationUtils等

更详细可见:SpringBoot源码分析之Spring容器的refresh过程

Spring中Bean的生命周期

SpirngBean生命周期

Spring扩展接口
扩展接口作用
BeanFactoryPostProcessor处理Bean前,对BeanFactory进行预处理
BeanDefinitionRegistryPostProcessor可添加自定义的Bean
BeanPostProcessor支持Bean初始化前后的处理
ApplicationContextAware可以获得ApplicationContext及其中的Bean
InitializingBean在Bean创建完,所有属性注入后执行
DisposableBean在Bean销毁前执行
ApplicationListener用于监听产生的应用事件

SpringBoot

SpringBoot

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值