Ich bin ein Spring-Neophyt, der an einem großen Spring-basierten Projekt arbeitet, das eine umfangreiche Kopplung zwischen Spring Beans hat. Ich versuche, einige Integrationstests zu schreiben, die Teilmengen der gesamten Anwendungsfunktionalität ausführen. Um dies zu tun, möchte ich etwas vom Autowiderstand überschreiben. Angenommen, ich habe eine KlasseWie überschreibt man eine Spring @Autowire-Annotation und setzt ein Feld auf null?
public class MyDataServiceImpl implements MyDataService {
@Qualifier("notNeededForMyDataServiceTest")
@Autowired
private NotNeededForMyDataServiceTest notNeededForMyDataServiceTest;
//...
}
und eine Kontext-Datei mit:
<bean id="myDataService"
class="MyDataServiceImpl">
</bean>
In meinem Test habe ich keine Notwendigkeit, das notNeededForMyDataServiceTest
Feld zu verwenden. Gibt es eine Möglichkeit, die @Autowired
Annotation zu überschreiben und notNeededForMyDataServiceTest
auf null setzen, vielleicht in der XML-Datei? Ich möchte keine der Java-Klassen ändern, aber ich möchte die (problematische) Konfiguration von notNeededForMyDataServiceTest
vermeiden.
Ich habe versucht zu tun:
<bean id="myDataService"
class="MyDataServiceImpl">
<property name="notNeededForMyDataServiceTest"><null/></property>
</bean>
, das nicht funktioniert. IntelliJ informiert mich, dass die Eigenschaft 'notNeededForMyDataServiceTest' nicht aufgelöst werden kann, offenbar weil für dieses Feld keine Getter und Setter vorhanden sind.
Ich benutze Spring Framework 3.1.3.
haben Sie versucht: , Ich denke, das wird Ihnen eine Zeichenfolge Null geben, aber Sie können zumindest einen Wert setzen –
Jayz