RestTemplate unterstützt nicht, was Sie OOTB erreichen möchten.
Es klingt jedoch, als ob Sie einen RPC-Mechanismus in irgendeiner Art implementieren möchten.
Lasst uns sagen, dass Sie ServiceInterface als die Service-Schnittstelle haben, ServiceStubImpl als die lokale Stub Dienst (Client) und ServiceImpl die konkrete Umsetzung vor Ort.
An den Stellen, wo Sie Anrufe in Richtung ServiceImpl Sie machen verwenden ServiceInterface offensichtlich, die die Umsetzung selbst oder ServiceStubImpl sein könnte tatsächlich die aus der Ferne den Anruf macht. Letzterer kann RestTemplate innerhalb anderer Arten von Transportmechanismus Ihrer Wahl verwenden.
Ihr spezieller Anwendungsfall scheint zu sein, dass Sie nicht wissen, ob ServiceImpl lokal verfügbar ist oder nicht, aber wenn dies der Fall ist, möchten Sie das direkt anrufen, anstatt Netzwerk-Roundtrips durchzuführen.
All dies ähnelt sehr den automatischen Konfigurationsmechanismen von Spring Boot, bei denen bestimmte Klassen im Klassenpfad gesucht werden und die erforderlichen Initialisierungen und Verdrahtungen durchgeführt werden, sofern sie verfügbar sind.
Das heißt, Frühlings-Boot-Mechanismus für Ihren Anwendungsfall die Anwendung wie dies als Beispiel aussehen:
@Configuration
class SeviceConfig {
@Bean
@ConditionalOnMissingClass(name = "your.app.ServiceImpl")
ServiceInterface service() {
return new ServiceStubImpl(...);
}
}
Sie können Ihre eigene Auto-Konfiguration mit Frühlings-Boot hier mehr lesen über das Erstellen von: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html
Danke für Ihre Antwort. Dies kann getan werden. Aber ich bin auf der Suche nach einem Werkzeug, das intern so etwas tun würde. –
Wie ich in der Frage erwähnt habe, können wir mit Federcache so etwas machen –