为了账号安全,请及时绑定邮箱和手机立即绑定

Bean1类中的createBean2()这个抽象方法并没有实现,为何在xml中配置了,就能从中获取bean2对象了?

视频15分40秒处老师提出的问题,对其中代码有疑问:

Bean1类中的createBean2()这个抽象方法并没有实现,为何在xml中配置了,就能从中获取bean2对象了?


正在回答

4 回答

在测试类中没有具体实现`createBean2()`方法,但是在Spring的配置文件中使用了`<lookup-method>`标签来定义了`createBean2()`方法的实现。

<lookup-method>标签用于在运行时动态生成一个返回类型为指定类的对象的方法。

在配置文件中的这行代码:<lookup-method name="createBean2" bean="bean2"/>

表示当调用`createBean2()`方法时,实际上会返回`bean2`这个Bean的实例。

因此,当执行`bean1.printBean2()`方法时,会调用`createBean2()`方法,并返回`bean2`这个Bean的实例。

所以在多次调用`bean1.printBean2()`方法时,会产生多个`Bean2`对象的实例。


0 回复 有任何疑惑可以回复我~

应该就和set方法注入一样配置一个<property> 标签,只不过是换成了<lookup-method>标签

0 回复 有任何疑惑可以回复我~

还记得前面spring-core 包嘛,这里是因为spring 应用了CGLIB类库,调用xml配置的方法的时候生成了动态代理类,简单来说spring 帮你实现了这个方法

0 回复 有任何疑惑可以回复我~

返回值是Bean2对象

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Bean1类中的createBean2()这个抽象方法并没有实现,为何在xml中配置了,就能从中获取bean2对象了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信