Mr沐阳
https://www.cnblogs.com/ViviChan/p/4981619.html
这个对你会有帮助
Hi_10_02_2024
已经完了
长安未央
Bean2与Bean1的关系:1:n
当多次执行 context.getBean("bean1",Bean1.class); 时,内存将会为新实例化的Bean1分配空间,形成新的内存地址。
no4990
在测试类中没有具体实现`createBean2()`方法,但是在Spring的配置文件中使用了`<lookup-method>`标签来定义了`createBean2()`方法的实现。
<lookup-method>标签用于在运行时动态生成一个返回类型为指定类的对象的方法。
在配置文件中的这行代码:<lookup-method name="createBean2" bean="bean2"/>
表示当调用`createBean2()`方法时,实际上会返回`bean2`这个Bean的实例。
因此,当执行`bean1.printBean2()`方法时,会调用`createBean2()`方法,并返回`bean2`这个Bean的实例。
所以在多次调用`bean1.printBean2()`方法时,会产生多个`Bean2`对象的实例。
慕丝8536024
方法注入,可能是老师自己取的名字,我理解的是,每次gerbean2都是新实例化的bean2
那个怪蜀黍是谁额
这个是要综合考虑的问题。就拿我们在工作中的很常见的例子来说:我们会将controller、service、dao中的class交由spring管理并注入,是因为一般情况下在整个程序运行周期内,这些class只会被实例化一次,这恰好能和spring中的singleton scope相吻合。但是我们几乎很少将entity中的class交由spring管理,因为我们无法确定这些class对应的bean的生命周期。所以其实归结一句话:考虑是否将一个class交由spring管理,关键看这个class产生的bean是否符合spring提供的scope的生命周期规则。