Wie zu Erstellen oder zu konfigurieren, Rest-Vorlage mit @Bean in Spring Boot

Möchte ich definieren RestTemplate als application-bean mit @Bean Anmerkung in mein configuration-Klasse, die in einer spring-boot-Anwendung.

Rufe ich 4 von rest-Diensten in verschiedenen Orten in meiner Anwendung fließen. Zurzeit bin ich schaffen RestTemplate jeder Zeit jeden Wunsch. Gibt es eine Möglichkeit, kann ich definieren, die als application-bean mit @Bean und Spritzen, die mit @Autowired?

Hauptgrund für diese Frage ist, kann ich in der Lage zu definieren RestTemplate mit @Bean aber wenn ich es injizieren mit @Autowired ich bin verlieren alle angegebenen interceptors (Abfangjäger sind nicht immer genannt.)

Configuration-Klasse

@Bean(name = "appRestClient")
public RestTemplate getRestClient() {

    RestTemplate  restClient = new RestTemplate(
        new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()));

    List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
    interceptors.add(new RestServiceLoggingInterceptor());
    restClient.setInterceptors(interceptors);

    return restClient;
}

Service-Klasse

public class MyServiceClass {

    @Autowired
    private RestTemplate appRestClient;

    public String callRestService() {
        //create uri, method response objects
        String restResp = appRestClient.getForObject(uri, method, response);
        //do something with the restResp
        //return String
    }
}

Es scheint, mein Interceptors sind nicht immer genannt, bei der alle mit dieser Konfiguration. Aber RestTemplate ist in der Lage, um einen Anruf zu tätigen, um den REST-service und eine Antwort bekommen.

  • Sind Sie sicher, dass Sie die Injektion der gleichen RestTemplate Beispiel könnten Sie Kommissionierung bis einige andere Bohne? Versuchen Sie @Qualifier("appRestClient") aus org.springframework.beans.factory.annotation.Qualifier neben Ihrem @Autowired annotation.
  • vielen Dank für Ihre Eingabe daniel.Wenn ich versuchte, mit @Qualifier Abfangjäger sind nicht immer abgeholt.Ich glaube, ich bin hier etwas fehlt.
Schreibe einen Kommentar