@Autowired和配置bean的方式不同

时间:2014-05-14 00:47:43

标签: java spring javabeans

我有

public class Foo
{
}

我有

public class Bar
{

    @Autowired
    Foo foo;

}

现在,我希望能够以不同的方式配置Foo。因此,Bar将使用Foo,其将使用一个ResourceBaz将使Foo具有不同的Resource

我尝试将其添加到.xml:

<bean id="Foo1" class="com.something.Foo" >
  <constructor-arg value="#{ appProperties.resourece1 }"/>
</bean>

<bean id="Foo2" class="com.something.Foo" >
  <constructor-arg value="#{ appProperties.resourece2 }"/>
</bean>

我创建了一个构造函数

public class Foo
{

    public Foo(Resource resource)
    {
    }
}

我用过

 @Autowired @Qualifier("Foo1")
 Foo foo;

然而,它抛出没有找到默认构造函数;嵌套异常是java.lang.NoSuchMethodException:com.ssomething.Foo。() 所以,看起来它根本就忽略了.xml。

解决这个问题的正确方法是什么,因为看起来我做错了什么?在这种情况下,我应该完全转储@Autowired吗?

0 个答案:

没有答案