Я - неофит весны, который работает над большим весенним проектом, который имеет обширную связь между весенними бобами. Я пытаюсь написать некоторые интеграционные тесты, которые выполняют подмножества общей функциональности приложения. Для этого я хотел бы переопределить некоторые из них. Например, предположим, что у меня есть классКак переопределить аннотацию Spring @Autowire и задать поле null?
public class MyDataServiceImpl implements MyDataService {
@Qualifier("notNeededForMyDataServiceTest")
@Autowired
private NotNeededForMyDataServiceTest notNeededForMyDataServiceTest;
//...
}
и контекстный файл:
<bean id="myDataService"
class="MyDataServiceImpl">
</bean>
В моем тесте, у меня нет необходимости использовать notNeededForMyDataServiceTest
поле. Есть ли способ переопределить аннотацию @Autowired
и установить notNeededForMyDataServiceTest
в null, возможно, в файле XML? Я не хочу изменять какой-либо из классов Java, но я хочу избежать (проблемной) конфигурации notNeededForMyDataServiceTest
.
Я попытался сделать:
<bean id="myDataService"
class="MyDataServiceImpl">
<property name="notNeededForMyDataServiceTest"><null/></property>
</bean>
Это не работает. IntelliJ сообщает мне: «Невозможно разрешить свойство« notNeededForMyDataServiceTest »», по-видимому, потому, что для этого поля нет геттеров и сеттеров.
Я использую Spring Framework 3.1.3.
Вы пытались: <свойство name = "notNeededForMyTestService" value = "null" />, я думаю, что это даст вам строку null, но вы можете по крайней мере установить значение – Jayz