2017-03-01 3 views
0

ich eine Autokonfiguration Klasse sfConfig habe, die folgenden BohnenFeder-boot-Starter nicht finden kann, Bohnen

@Bean 
@ConditionalOnBean(value = SalesforceClientConfig.class) 
SalesforceClient sfClient(SalesforceClientConfig sfConfig){ 
    return SalesforceRestClient.from(sfConfig); 
} 

@Bean 
//@ConditionalOnBean(value = Authentication.class) 
SalesforceClientConfig sfClientConfig(Authentication sfAuthentication){ 
    return DefaultSalesforceClientConfig.builder() 
             .authentication(sfAuthentication) 
             .mapper(mapper()) 
             .build(); 
} 

Wie ersichtlich sfClient Bean definiert geschaffen werden soll, weil SalesforceClientConfig erstellt wird. Aber es löst eine Ausnahme aus:

Dies ist komisch, weil dies eine Autokonfiguration Klasse ist und es sollte diese Bean finden. Irgendwelche Gedanken?

Hier ist, wie ich meine die automatische Konfiguration Klassen in der Datei definiert haben:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 

com.ondeck.letter.config.SpringJpaDBConfig, \ com.ondeck.letter.config.SFConfig

+0

Ich versuchte etwas und es funktionierte, aber das ist super komisch und ich kann nicht glauben, dass der Frühling so etwas tun würde: Ich änderte die Reihenfolge der Methode in der Klasse und es funktionierte. Ist das normal –

Antwort

0

Nach zu Annotation Type ConditionalOnBean wird empfohlen, @ConditionalOnBean Annotation in den Autokonfigurationsklassen zu verwenden, die mit @EnableAutoConfiguration kommentiert werden.

Wahrscheinlich haben Sie die Autokonfigurationsklasse nicht richtig definiert.

+0

Ich glaube nicht, dass das ein Problem ist. Siehe mein Kommentar, wenn ich die Reihenfolge ändere, in der die Methoden definiert sind, funktioniert es. –

+0

Ja, wahrscheinlich ist es ein Problem mit dem Java-Compiler, wenn Sie keine richtige Autokonfiguration haben. – hya

+0

Ich bin mir nicht sicher, was Sie mit der richtigen Autokonfiguration meinen. Ich habe spring.factories Datei und das hat die Konfigurationsdatei. Macht es Ihnen etwas aus, was Sie mit "nicht richtig" meinen –