Wicket + Spring Primary的行为不符合预期

时间:2013-03-01 12:50:57

标签: java spring wicket ioc-container

首先,我正在使用我将Spring 3.0与Wicket-spring(Wicket 1.5)一起使用。

尝试实现同一接口的几个bean时,我遇到了一些奇怪的行为......

“原始”实现在另一个.jar文件中指定并且工作正常。 但是当我尝试添加另一个bean时,我收到了以下错误。

  

java.lang.RuntimeException:在spring中为com.project.SomeServiceInterface类型配置了多个bean。       注释信息不可用,原因可能是因为您没有使用       @注入。您应该使用@Inject并通过Inject(“yourBean”)指定bean名称。       可用的bean名称:oldService,newService

bean的旧定义是从主“springContext.xml”导入的,而新的定义是在“override.xml”中定义的。

<import resource="classpath*:springContext.xml" />
...
<import resource="beansOverride.xml" />

我将新实现定义如下......

<bean primary="true" id="newService" class="com.project.SomeServiceImpl" />

我真的没有看到这是怎么发生的,原始的XML定义是相同的,只是它没有属性primary =“true”... Shouldent事实上新bean被标记为主要删除的可能性这种错误?

甚至更奇怪(?)是代码中没有注入SpringBean而没有定义bean名称的地方。

我对Spring很新,但我觉得这应该有用......有没有人对此深有见解?

修改

bean在两个不同的类中在基本代码的高处注入一个抽象类......但它们都是这样定义的:

    @SpringBean(name="oldService")
    private SomeServiceInterface mService;

这是bean在整个项目中使用的唯一方法,即它总是将bean名称定义为“oldService”。

0 个答案:

没有答案