У меня есть некоторые трудности, и я не могу понять, как заставить это работать из-за недостатка знаний в среде Spring. То, что я пытаюсь сделать, довольно просто. Я хочу использовать вставленный AppProperties в RestTemplateComponent constuctor или getRestTemplate метод, но все реквизиты являются нулевыми. Я думаю, я понимаю, почему .. это потому, что RestTemplateComponent по порядку был загружен первым, и поэтому AppProperties реквизиты равны нулю.
Возможно ли кое-как сказать Spring, чтобы сначала загрузить AppProperties, чтобы использовать его в RestTemplateComponent.
Кстати, проблема возникает только при запуске, нет никаких проблем, когда я внедряю его в контроллер и во время запроса использую эти объекты.
application.properties
integration.url=http://...
@Configuration
@ConstructorBinding
@ConfigurationProperties("integration")
public class AppProperties {
private String url;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
@Component
public class RestTemplateComponent {
private final AppProperties appProperties;
public RestTemplateComponent(AppProperties appProperties) {
this.appProperties = appProperties;
}
@Bean
public RestTemplate getRestTemplate() {
RestTemplate restTemplate = new RestTemplate();
//Custom authorization
return restTemplate;
}
}