Используйте аннотацию @Resource или @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;
}
Именно поэтому я предпочитаю конфигурацию XML. –