使用 @Resource 注释或 @Qualifier,使用区分 bean 类型的 @Qualifier:
@Autowired
@Qualifier("testing")
private SmartCardService smartCardService;
@Service
@Qualifier("testing")
public class DummySmartCardService extends SmartCardService{
...
}
或者使用使用按名称语义的@Resource:
@Resource("dummySmartCardService")
private SmartCardService smartCardService;
@Service("dummySmartCardService")
public class DummySmartCardService extends SmartCardService{
...
}
理论上你可以使用@Qualifier("beanName")
,但不鼓励使用。
但是如果你有一个 Spring 配置文件来在你的测试中只加载与测试相关的存根,它认为会更好:
@Service
@Profile("test")
public class DummySmartCardService extends SmartCardService{
...
}
@ContextConfiguration(locations = {"classpath:services.xml"})
@ActiveProfiles("test")
public class TestSuite{
@Autowired
private SmartCardService smartCardService;
}