从应用程序上下文获取原型bean的问题

时间:2017-05-09 16:28:51

标签: spring

我有一个要求,我必须在一个类的循环中获取很少的有状态bean,这是我的处理器。这个处理器bean本身是一个单独的bean。现在问题是在一个地方,我能够从应用程序上下文成功获取bean,但在其他情况下,我得到一个代理对象。我正在使用注释来定义bean的范围并使用组件扫描。

案例1 - Interface1

A类实现Interface1

applicationContext.getBean("",的A.class);这会成功返回类A的对象.class A是原型bean

案例2 - 接口2 B类实现Interface2(B类是原型bean) applicationContext.getBean(" B",B.class);  这会引发运行时异常,抱怨类型不匹配 如果我做B b =(B)applicationContext.getBean(" b",); 这给出了类型转换异常 如果我做 applicationContext.getBean(" B&#34);  然后它返回代理对象。 我无法理解这种行为。

任何建议或帮助都会很棒......

1 个答案:

答案 0 :(得分:0)

我发现如果在应用程序中有原型bean的各个方面,那么默认的应用程序上下文将返回代理对象并且类型转换不可能,