如上用接口完成aop操作。请问为什么通过接口class就能获取到代理对象呢 内存中不是有代理和目标两个对象吗 为什么就只获取到代理呢,如果通过getbean(目标对象名字,class)为啥也会得到代理对象呢
spirng aop问题
如上用接口完成aop操作。请问为什么通过接口class就能获取到代理对象呢 内存中不是有代理和目标两个对象吗 为什么就只获取到代理呢,如果通过getbean(目标对象名字,class)为啥也会得到代理对象呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 在使用 AOP 进行编程时,我们通常会将目标对象和代理对象都注册到容器中。当我们通过接口的方式获取 bean 时,实际上是获取到了代理对象,因为这个代理对象实现了目标对象所实现的接口,以此对外提供服务。
Spring 框架使用动态代理技术来实现 AOP,在运行时生成代理类。在 Spring 中,BeanFactory 负责管理 Bean(即目标对象),而 ProxyFactoryBean 负责创建代理对象。当我们通过 getBean 获取一个 Bean 时,如果这个 Bean 是一个代理对象,那么容器会返回该代理对象;如果这个 Bean 不是代理对象,则直接返回目标对象。
因此,无论是通过接口还是通过目标对象名字来获取 Bean,只要这个 Bean 在容器中被注册为代理对象,就会返回该代理对象。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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文件离线都无法打开