首页 > 其他分享 >Spring核心思想之 AOP:在自定义容器基础上实现AOP功能

Spring核心思想之 AOP:在自定义容器基础上实现AOP功能

时间:2024-03-13 12:55:05浏览次数:27  
标签:核心思想 自定义 DI Spring AOP IOC

  在Spring核心思想之 AOP:基础概念及注解式AOP初体验中对AOP的基本概念及使用有了初步的了解。本文仿Spring自定义后置处理器、注解等,在Spring的核心思想之IOC:仿Spring自定义一个实现IOC的容器的基础上实现自定义的AOP功能。

  aop相关目录:

                  

  在IOC容器的自定义实现中,populateBean()方法后面执行了后置处理器,如下:

            

            

                 

    该方法前部分是对注解的反射,重点是后面部分获得代理对象。

    实际操作的是createProxy(lfAdvisedSupport).getProxy()方法。该方法的参数为lfAdvisedSupport ,实际这个就是增强通知的代理对象。观察其属性为目标对象实例和class。

              

    在这个UML图中明确展现了,对切点的解析操作以及增强通知相关的方法。

    接下来就是根据是否有接口分别使用Jdk代理和Cglib代理。

              

    当然,Spring中AOP比这个复杂的多,本文只是大致描述其基本思想。在Spring的核心思想之DI:详解Spring DI循环依赖实现机制末尾提到三级缓存与AOP相关,这里的AOP在populateBean()方法之后,Spring框架中实际亦如此。那么在循环DI中AOP提前触发呢?

 

标签:核心思想,自定义,DI,Spring,AOP,IOC
From: https://www.cnblogs.com/ilovebath/p/18070108

相关文章

  • 基于springboot的车辆充电桩管理系统(系统+数据库+文档)
    **......
  • 基于SpringBoot的CSGO赛事管理系统(程序+数据库+文档)
    **......
  • springboot基于JavaWeb的兽医站管理系统的设计与实现
    摘要随着世界经济信息化、全球化的到来和互联网的飞速发展,推动了各行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、动态的、交互友好的、高效的兽医站管理系统。当前的信息管理存在工作效率低,工作繁杂等问题,基于信息化的兽医站管理目......
  • springboot基于Java的公共交通查询系统的设计与实现
    摘要近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。公共交通查询系统相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。2019年疫情的爆发,更是短时间内迅速扩大了线上管理系统的规模。尽管服务行业已经......
  • springboot基于Java的远程就医系统
    摘要随着网络科技的不断发展以及人们经济水平的逐步提高,网络技术如今已成为人们生活中不可缺少的一部分,而信息管理系统是通过计算机技术,针对用户需求开发与设计,该技术尤其在各行业领域发挥了巨大的作用,有效地促进了远程就医的发展。然而,由于用户量和需求量的增加,信息过载等......
  • 基于java+springboot教师工作量管理系统
    基于java+springboot教师工作量管理系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis工具:IDEA/Ecilpse、Navicat、Maven系统展示后台展示系统简介本教师工作量管理系统分为管理员还有用户两个权限,管理员可以管理用户的基本信息内容,可以管理公告信息以及公告......
  • Spring
    概述分析以下程序存在的问题:Web层:publicclassUserAction{privateUserServiceuserService=newUserServiceImpl();publicvoiddeleteRequest(){userService.deleteUser();}}Service层:publicinterfaceUserService{voiddeleteUser......
  • seata nacos spring cloud
    目录概述实践seata-server所需表seata-server修改配置seata原理问题项目表构建seata配置正常下单order日志product日志account日志库存不足余额不足问题结束概述seata1.8.0版本,针对springcloudalibabafeign应用。实践seata-server所需表建ry-......
  • springcloud 基础组件-Feign 调用流程
    原图来自:https://blog.csdn.net/luanlouis/article/details/82821294所有注册的feignclientorg.springframework.cloud.openfeign.FeignAutoConfiguration#feignContext决定使用哪种client的地方org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignCo......
  • 分布式之SpringCloud
    一、SpringCloud1、SpringCloud是什么SpringCloud是一系列框架的有序集合,这些框架为我们提供了分布式系统构建工具。2、SpringCloud包含那些项目项目项目名称服务注册于发现AlibabaNacos、NetflixEureka、ApacheZookper分布式配置中心AlibabaNacos、SpringCloudC......