Spring啊,Spring,简单的面试知识点,过一遍吧

我是方圆
愿你三冬暖,愿你春不寒

1. SpringIOC图解

在这里插入图片描述

2. SpringIOC支持的功能

  • 依赖注入
  • 自动装配
  • 依赖检查
  • 支持集合
  • 指定初始化方法和销毁方法
  • 支持回调方法

3. SpringIOC容器的核心接口

3.1 简要了解

  • BeanDefinition:用来描述Bean定义
  • BeanDefinitionRegistry:提供向IOC容器注册BeanDefinition对象的方法

3.2 主要了解

  1. BeanFactory
    在这里插入图片描述
    BeanFactory是Spring最核心的接口,是Spring框架的基础设施,面向的是Spring

  2. ApplicationContext
    在这里插入图片描述
    Application实现多个接口,面向的是使用Spring框架的开发者

4. IOC中getBean方法的代码逻辑

  • 转换BeanName
  • 从缓存中加载实例
  • 实例化Bean
  • 检测parentBeanFactory
  • 初始化依赖的Bean
  • 创建Bean

5. SpringBean的作用域

  • Singleton:Spring的默认作用域,容器里拥有唯一的Bean实例
  • Prototype:针对每个getBean的请求,容器都会创建一个新的Bean实例
  • request:会为每一个Http请求创建一个Bean实例
  • session:会为每一个Session创建一个Bean实例
  • globalSession:回味每个全局Http Session创建一个Bean实例

6. SpringBean的生命周期

  1. 创建过程
    在这里插入图片描述
  2. 销毁过程
  • 若实现了DisposableBean接口,则会调用destory方法
  • 若配置了destry-method属性,则会调用其配置的销毁方法

7. SpringAOP(面向切面编程,动态代理织入)

  • 通用化功能代码的实现,对应的就是所谓的切面
  • 业务功能代码和切面代码分开后,架构将变得高内聚、低耦合
  • 确保功能的完整性,切面最终会被合并到业务中

7.1 Advice的种类

  • Before:前置通知
  • AfterReturning:后置通知
  • AfterThrowing:异常通知
  • After:最终通知
  • Around:环绕通知

7.2 AOP的实现:JdkProxy和Cglib

  • 由AOP ProxyFactory根据Advised Support对象的配置来决定
  • 如果目标类是接口,则使用JdkProxy,否则使用Cglib

7.2.1 JdkProxy

  1. JDK Proxy核心是InvocationHandler接口和Proxy类
  2. JDK Proxy通过Java内置的反射机制实现
  3. 反射机制在生成类的过程中比较高效

7.2.2 Cglib

  1. Cglib以继承的方式动态生成目标类的代理
  2. Cglib借助ASM机制实现
  3. ASM在生成类后的执行过程比较高效

7.3 代理模式详解

大家可以看我之前写过一篇博客
最好理解的代理模式


这篇文章到这里就完了,感谢您的阅读,笔者水平有限,欢迎大家赐教

原创文章 56 获赞 19 访问量 6007

猜你喜欢

转载自blog.csdn.net/qq_46225886/article/details/106164584