多例注入的两种方式问题

多例注入的两种方式问题

  • 通过ObjectFactory注入的多例对象可以正常通过set方法赋值

  • 通过scrope注入的多例对象通过调试发现是动态代理类, 无法通过set方法赋值

    这两种方式的本质区别还不是特别明白,第二种如果想赋值成员变量有什么解决方案么

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

推测下原因:因为开启多例,又开启了CGLIb的代理模式,

那么就会出现这种问题:

  1. 由于开启了代理,所以每次访问this.test获取到的都是不同对象

  2. this.test.set是对A实例赋值

  3. 而this.test.get 相当于获取了另外一个实例B的属性值


两个对象不一样。

  • wj_user 提问者 #1
    调试发现确实是老师说的那样,谢谢啦
    2020-04-03 10:40:43
7七月 2020-04-03 04:20:00

如果是单例的代理模式,就不会出现这种情况

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师