如上用接口完成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 VS2022 C++的相关代码问题咨询
- ¥15 如果要做一个老年人平板有哪些需求
- ¥15 k8s生产配置推荐配置及部署方案
- ¥15 matlab提取运动物体的坐标
- ¥15 人大金仓下载,有人知道怎么解决吗
- ¥15 一个小问题,本人刚入门,哪位可以help
- ¥30 python安卓开发
- ¥15 使用R语言GD包一直不出结果
- ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
- ¥15 如何根据一个截图编写对应的HTML代码