Spring loc整体流程

  1. 什么是 Spring IoC? Spring IoC 是 Spring 框架的核心概念之一,它通过将对象的创建、依赖关系的注入和管理交给 Spring 容器来实现。在 IoC 中,对象的创建和依赖关系由容器负责,而不是由代码直接控制。

  2. Spring IoC 的优点是什么? Spring IoC 的优点包括:

  • 降低了代码的耦合度,提高了代码的可维护性;
  • 提供了对象的生命周期管理,可实现对象的单例、原型等多种作用域;
  • 支持依赖注入,使得对象的依赖关系更加清晰和可配置;
  • 方便进行单元测试,可以方便地替换依赖的对象。
  1. Spring IoC 的实现方式有哪些? Spring IoC 的实现方式包括 XML 配置、注解和 JavaConfig。XML 配置是传统的方式,通过在 XML 文件中配置 Bean 的信息来实现;注解方式通过在代码中使用注解来配置 Bean;JavaConfig 是一种使用 Java 代码来配置 Bean 的方式。

  2. 什么是 Spring AOP? Spring AOP 是 Spring 框架中的一个功能模块,它提供了一种以声明方式实现面向切面编程的方法。AOP 允许开发者在不修改原有代码的情况下,通过横向切割关注点来实现一些横切逻辑,如日志记录、事务管理等。

  3. AOP 的核心概念是什么? AOP 的核心概念包括切面(Aspect)、连接点(Join Point)、切点(Pointcut)、通知(Advice)和引入(Introduction)等。切面定义了横切逻辑,连接点是在程序执行过程中可以插入切面的点,切点定义了连接点的集合,通知定义了在连接点执行前、后或抛出异常时执行的代码,引入允许向现有类添加新方法或属性。

 上图演变过程

         首先Reader(读取器)读取xml文件,把bean标签里所有信息解析抽取封装成一个叫BeanDefinition的一个对象里面,也叫做bean定义对象,里面封装的是bean标签的一些信息,然后这个BeanDefinition是存储在BeanDefinitionMap中的,然后spring会把你的BeanDefinitionMap全部遍历一遍取出BeanDefinition,然后再从BeanDefinition取出bean的信息,比如权限名,然后通过反射去创建对象,然后把创建好的对象存储到一个Map里面(singletonObjects)也叫单例池, 当执行getBean方法时就是从单例池中获取实例Bean。

         在把bean标签的信息封装好存储在beanDefinitionMap完毕后,singletonObjects在取beanDefinition进行创建(实例)对象之前要执行spring后置处理器BeanFactoryPostProcessor接口方法BeanDefinitionRegistryPostProcessor是它的子类主要用来注册beanDefinition(使用这个比它父类方便)

        在bean对象创建完毕之后填充到单列池之前还有一个步骤执行BeanPostProcessor分为两个方法(BeanPostProcessor#before(前置))(BeanPostProcessor#after()(后置))被称之为bean后处理器,主要是对spring功能的一个扩展,也是spring特别重要的一个扩展点 ,对进入单列池的Obj做一个功能增强,比如属性一些数据的修改,比如使用动态代理对Obj进行一个增强。

        这张图可以分为左边跟右边,左边简单来说就是 beanDefinitionMap的填充,bean实例化过程的一部分叫做bean的定义过程,定义完了就要创建对象存储到容器里面,右边第一个虚框叫做bean的实例化阶段,第二个虚框叫做bean的初始化阶段,第三个虚框叫bean的存储阶段,这三个阶段组合一起被称为Spring Bean的生命周期。这些就是大概了,不懂的可以去b站的黑马程序员里看这方面的视频。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值