白日做梦嘞 2023-05-08 00:45 采纳率: 86.5%
浏览 55
已结题

spirng aop问题

img


如上用接口完成aop操作。请问为什么通过接口class就能获取到代理对象呢 内存中不是有代理和目标两个对象吗 为什么就只获取到代理呢,如果通过getbean(目标对象名字,class)为啥也会得到代理对象呢

  • 写回答

1条回答 默认 最新

  • 热爱编程的小白白 新星计划导师 2023-05-08 00:53
    关注

    在使用 AOP 进行编程时,我们通常会将目标对象和代理对象都注册到容器中。当我们通过接口的方式获取 bean 时,实际上是获取到了代理对象,因为这个代理对象实现了目标对象所实现的接口,以此对外提供服务。

    Spring 框架使用动态代理技术来实现 AOP,在运行时生成代理类。在 Spring 中,BeanFactory 负责管理 Bean(即目标对象),而 ProxyFactoryBean 负责创建代理对象。当我们通过 getBean 获取一个 Bean 时,如果这个 Bean 是一个代理对象,那么容器会返回该代理对象;如果这个 Bean 不是代理对象,则直接返回目标对象。

    因此,无论是通过接口还是通过目标对象名字来获取 Bean,只要这个 Bean 在容器中被注册为代理对象,就会返回该代理对象。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月16日
  • 已采纳回答 5月8日
  • 创建了问题 5月8日

悬赏问题

  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开