Rus*_*pot 3 spring dependency-injection autowired
我正在使用Spring MVC应用程序并遇到了问题.我是Spring的新手,所以如果我的工作有点笨拙,请原谅我.基本上我有一个java类ContractList.在我的应用程序中,我需要这个类的两个不同的对象(它们都必须是单例)
public class MyClass {
@Autowired
private ContractList contractList;
@Autowired
private ContractList correctContractList;
.. do something..
}
Run Code Online (Sandbox Code Playgroud)
请注意,这两个bean都没有在ApplicationContext.xml中定义.我只使用注释.因此,当我尝试访问它们时 - contractList和correctContractList最终引用同一个对象.有没有办法以某种方式区分它们而不在ApplicationContext.xml中显式定义它们?
您可以为bean提供限定符:
@Service("contractList")
public class DefaultContractList implements ContractList { ... }
@Service("correctContractList")
public class CorrectContractList implements ContractList { ... }
Run Code Online (Sandbox Code Playgroud)
并像这样使用它们:
public class MyClass {
@Autowired
@Qualifier("contractList")
private ContractList contractList;
@Autowired
@Qualifier("correctContractList")
private ContractList correctContractList;
}
Run Code Online (Sandbox Code Playgroud)
在xml配置中仍然使用@Autowired它将是:
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6014 次 |
| 最近记录: |