当前位置: 首页 > 知识库问答 >
问题:

为什么Spring明显合并了两种不同的豆?

邓俊英
2023-03-14

我对Spring和atm很陌生,正在检查XML驱动的Spring。

现在我的问题是Spring以某种方式合并了来自同一个bean类的两个不同的bean对象。它将它们视为一个对象。

请查看以下代码:

<bean id="shapeList1" class="coreservlets.ShapeListMaker" >
    <constructor-arg index="0">
        <list>
        <ref local="shape1" /> 
        </list>
    </constructor-arg>
</bean>
<bean id="shapeList2" class="coreservlets.ShapeListMaker"  >
    <constructor-arg>
        <ref local="shape2" />
    </constructor-arg>
</bean>

…相关类:

public class ShapeListMaker {

public ShapeListMaker (List<Shape> shapes) {
    shapelist = shapes;
}

public ShapeListMaker (Shape shape) {
    shapelist.add(shape);
}

private static List<Shape> shapelist = new ArrayList<>();

比较两个对象(shapeList1==shapeList2)返回true。打印出其中一个列表会同时生成形状shape1和shape2……为什么?我很困惑。。。

通过同一个xml文件,我以相同的方式创建了一些其他bean对象(shapebean),没有任何麻烦或合并。

共有1个答案

濮阳宏硕
2023-03-14

shapeList是静态的;)因此引用是共享的,并且在两个类上都是相同的。

 类似资料:
  • 问题内容: 如何在RxSwift中合并2种不同类型的? 例如: 由于类型参数差异而无法使用。 问题答案: 对他们来说,他们需要具有相同的类型。 因此,一种选择是丢弃它们的类型信息并转换为。现在可以将它们合并: 输出: a b 1 2 c 另一种选择是将其包装在一个枚举中: 输出: next元素是STRING: 下一个元素是STRING:b next元素是INT:1 next元素是INT:2 nex

  • 和 对于同一 IP, 实际上, nginx 接收请求和发送给后台的服务器的请求的限速都是 每分钟 30 条吧, 这两者有什么区别了? 各位大佬帮忙看看

  • 我在Cplex中使用Python API来解决一个线性编程问题。使用Cplex时,我的结果如下: 但随后我将LP prolem保存为LP文件,并再次使用Cplex进行求解,结果与第一个略有不同: 下面是我的功能:

  • 我第一次用一个辅助数组实现了合并排序,以尝试使用JavaScript实现可视化。这似乎应该是有效的,但它不是。任何帮助或提示将不胜感激。 编辑:我忘了包括它不起作用的情况。它们是: 输入:[4, 2, 5, 6, 7, 7]输出:[4, 2, 5, 6, 7, 7] 输入:[6,6,6,4,6,2]输出:[4,6,6,6,6,2] 输入:[6, 7, 3, 10, 7, 9, 6, 3, 4, 6

  • 问题内容: 如果我有要排序的元素列表,那么Java提供了两种解决方法。 例如,假设我有一个电影对象列表,我想按标题对它们进行排序。 我可以执行此操作的一种方法是通过将电影列表作为单个参数调用静态java.util.Collections.sort()方法的一个参数版本。因此,我将其称为Collections.sort(myMovieList)。为了使它起作用,必须声明Movie类以实现java.l

  • 这是代码: 如果我在我的机器()或这里()上尝试: 相反,这里(): 这是不同的。这是由于机器厄普西隆?还是编译器精度标志?还是不同的评估? 造成这种漂移的原因是什么?问题似乎出现在函数中(因为其他值似乎相同)。

  • 本文向大家介绍Application 、Cookie和 Session 两种会话有什么不同?相关面试题,主要包含被问及Application 、Cookie和 Session 两种会话有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 答:Application是用来存取整个网站全局的信息,而Session是用来存取与具体某个访问者关联的信息。Cookie是保存在客户端的,机密信息不能保存在C

  • 问题内容: 这个问题已经在这里有了答案 : 什么时候“ i + = x”与Python中的“ i = i + x”不同? (3个答案) 7年前关闭。 我正在通过CodeAcademy进行工作,那里有一个问题尚未得到解答。任务是获取列表列表,并为其所有元素制作一个列表。紧接下面的代码是有效的我的答案。但是我不明白的是为什么“项目”被视为该代码列表中的元素,而(请参见下面的注释)… …下面代码中的“项