【问题标题】:Scope conflict in referenced bean in Spring xml fileSpring xml文件中引用的bean中的范围冲突
【发布时间】: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。

【问题讨论】:

  • employee bean 的所有实例都将引用单个 department bean。应该可以正常工作。

标签: java spring


【解决方案1】:

应该共享以前的bean系

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 2015-09-03
    • 2012-10-11
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多