So schalten Sie die Spring @Autowired erforderlich-Eigenschaft auf false testen?
Habe ich mit der @Required-annotation bis jetzt, um sicherzustellen, DI von meine Bohnen in einer Spring-Anwendung konfiguriert.
Aktivieren Sie die annotation, die Sie benötigen, zu erklären, RequiredAnnotationBeanPostProcessor Bohne in Ihrer Konfiguration.
In der test-Konfiguration, die Sie einfach nicht erklären, so dass, wenn einige Bohnen sind nicht erforderlich, Sie nicht haben, um Sie in Ihrer config.
Ich wechseln wollen weniger XML-und die Verwendung von @Autowired annotation, aber es ist per default required=true, und das ist gut für die runtime-Konfiguration.
Aber ich muss @Autowired werden, required=false für Testzwecke nur - während es erforderlich für die runtime.
Ist das überhaupt möglich? Ich kann nicht einen Weg finden, um deklarativ drehen Sie die required-Eigenschaft auf false.
cheers
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du wahrscheinlich gelöst schon, aber dieser trick kann nützlich sein für andere.
Soweit ich das verstanden ohne context:annotation-driven anwesend @Autowired Anmerkungen nicht verarbeitet werden sollten, aber dies ist eindeutig nicht der Fall, so dass ich möglicherweise etwas falsch verstanden.
Aber ich brauchte eine schnelle Lösung... Diesem etwas schmutzigen trick negiert gewünschte Wert für alle Klassen optional machen, was erforderlich war, vor. Hinzufügen zu meiner test-Kontext mein problem gelöst aber es ist nur nützlich, wenn alle autowirings erforderlich sind, in Ihre business-Klassen.
Habe ich eine Lösung, die funktioniert für JavaConfig-Konfigurationen
Können Sie das gleiche Verfahren verwenden, wie Sie es mit
@Required
- registrieren nicht dieAutowiredAnnotationBeanPostProcessor
im test-Kontext, aber lassen Sie es in Ihrem live-Kontext.Dies ist in der Regel registriert durch hinzufügen
<context:annotation-driven/>
ist, als manuell deklariert.