25 02 2025

2025.02.25笔记

Spring 中 用到的设计模式?

单例模式:bean默认都是单例的

原型模式:指定作用域为prototype

工厂模式:BeanFactory

模板方法:postProcessBeanFactory    onRefresh    initPropertyValue    

策略模式:XmlBeanDefinitonReader    PropertiesBeanDefinitionReader

观察者模式:listener    event    multicast

适配器模式:Adapter

装饰者模式:BeanWrapper

责任链模式:使用aop的时候会先生成一个拦截器链

代理模式:动态代理

委托者模式:delegate


Spring的AOP的底层实现原理?

aop是ioc的一个扩展功能,现有的ioc,再有的aop,只是在ioc的整个流程中新增的一个扩展点而已。BeanPostProcessor

bean的创建过程中有一个步骤可以对bean进行扩展实现,aop本身就是一个扩展功能,所以在BeanPostProcessor的后置处理方法中来进行实现。

   代理对象的创建过程(advice    切面    切点)

   通过jdk或者cglib的方法来生成代理对象

   在执行方法调用的时候,会调用到生成的字节码文件中,直接会找到DynamicAdvisedInterceptor类中的intercept方法,从此方法开始执行

   根据之前定义好的通知来生成拦截器链

   从拦截器链中依次获取每一个通知开始进行执行,在执行过程中,为了方便找到下一个通知是哪个,会有一个CglibMethodInvocation的对象,找的时候是从-1的位置开始查找并且执行的。




延伸阅读
  1. 浪海博客系统友情链接说明
  2. 浪海导航关于本站
  3. 浪海同志的一生
  4. 浪海博客系统部署说明
  5. minio 相关说明
  6. 浪海皇室 QQ飞车手游
  7. rabbitMQ 相关说明
  8. mysql相关说明
  9. ribbon负载均衡
  10. 开源支持浪海博客系统
如果出现代码等内容显示不正常,使用以前的显示器:以前的显示器
发表评论