Изменить базовое использование Retrofit с помощью внешнего файла конфигурации - PullRequest
0 голосов
/ 14 марта 2020

В моей весенней загрузке я использую Retrofit.

public class RestClientFactory {
    static final String API_BASE_URL = "http://127.0.0.1:8091/";
    static final String JSON_CONTENT_TYPE = "application/json";


  private static Retrofit.Builder builder = new Retrofit.Builder()
            .baseUrl(API_BASE_URL)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .client(httpClient.build());

В интерфейсе:

@GET("api/v1/hello")
    Call<JsonElement> sayHello();

Хорошо. Это нормально работает.

Но мне нужно, чтобы клиент мог изменить базовый URL-адрес с http://127.0.0.1:8091/ на любой другой.

В идеале он должен быть из внешнего конфигурационного файла. Возможно ли это Spring Boot 2.x

1 Ответ

1 голос
/ 15 марта 2020

вы можете использовать поле stati c для строителя и инициализировать его сначала, когда волшебные пружины c предоставили вам значение базового URL:

private static Retrofit.Builder builder;

@Value("${API_BASE_URL}")
public void createBuilder(String url) {    
    builder = new Retrofit.Builder()
        .baseUrl(url)
        .addConverterFactory(GsonConverterFactory.create(gson))
        .client(httpClient.build());
}

, затем вы можете предоставить значение для него в application.properties:

API_BASE_URL=http://127.0.0.1:8091/

и перезаписать его:

java -jar my_app.jar ---API_BASE_URL=http://127.0.0.1:8080/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...