2013-03-20 38 views
3

我正在研究Spring MVC应用程序并遇到问题。我是Spring的新手,所以请原谅我,如果我的工作有点笨拙。基本上我有一个Java类ContractList。在我的应用程序需要这个类的两个不同的对象(两者必须是单身)在ApplicationContext中未定义的同一类的Spring @Autowire两个bean

public class MyClass { 
    @Autowired 
    private ContractList contractList; 

    @Autowired 
    private ContractList correctContractList; 

    .. do something.. 
} 

注意,这两种豆子都没有在applicationContext.xml中定义。我只使用注释。所以当我尝试访问它们时 - contractList和correctContractList最终引用同一个对象。有没有办法以某种方式区分它们,而无需在ApplicationContext.xml中明确定义它们?依然采用@Autowired这将是

public class MyClass { 

    @Autowired 
    @Qualifier("contractList") 
    private ContractList contractList; 

    @Autowired 
    @Qualifier("correctContractList") 
    private ContractList correctContractList; 
} 

在xml配置:

回答

6

您可以到豆给予预选赛:

@Service("contractList") 
public class DefaultContractList implements ContractList { ... } 

@Service("correctContractList") 
public class CorrectContractList implements ContractList { ... } 

,并利用它们这样

<beans> 
    <bean id="contractList" class="org.example.DefaultContractList" /> 
    <bean id="correctContractList" class="org.example.CorrectContractList" /> 

    <!-- The dependencies are autowired here with the @Qualifier annotation --> 
    <bean id="myClass" class="org.example.MyClass" /> 
</beans> 
+0

谢谢!这不像我在避免使用xml定义......我很好奇,如果没有在xml中明确定义的方法。 – 2013-03-20 07:10:02

+0

没问题。如果它解决了您的问题,请将答案标记为正确。 – RJo 2013-03-20 07:13:46

相关问题