【发布时间】:2020-01-07 15:37:01
【问题描述】:
我有一个定义为原型的 bean 范围,它引用另一个范围是单例的 bean。现在从 spring 文档中,我知道了
单身
这将 bean 定义范围限定为每个 Spring IoC 容器的单个实例(默认)。
原型
这将单个 bean 定义的范围限定为具有任意数量的对象实例。
下面是我的代码:
<bean id="employee" class="com.sample.beans.Employee" scope="prototype">
<property name="id" value="1"/>
<property name="name" value="employee_1"/>
<property name="department">
<ref bean="department"/>
</property>
</bean>
<bean id="department" class="com.sample.beans.Department" scope="singleton">
<property name="id" value="1"/>
<property name="name" value="hardware"/>
</bean>
这是否意味着我每次需要时都强制 Spring 生成一个新的 Employee bean 实例,并且每个 IOC 容器的 Department bean 都是单个的。但是在内部,当员工调用部门 bean 时,它是创建一个新的还是共享之前创建的现有单例 bean。
【问题讨论】:
-
employeebean 的所有实例都将引用单个departmentbean。应该可以正常工作。