我有一些困难,由于缺乏Spring框架的知识,我无法实现它的工作方式。我想做的很简单。我想在RestTemplateComponent constuctor或getRestTemplate方法中使用注入的AppProperties,但所有道具均为空。我想我理解为什么..这是因为首先按顺序加载了[[RestTemplateComponent,这就是AppProperties道具为null的原因。
是否有可能如何告诉Spring首先加载AppProperty以便在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;
}
}
@@ PropertySource({“ classpath:application.properties”}))>>来完成它的工作,然后当我尝试在SpringBootApplication中自动装配AppProperties时,我在调试中看到道具是初始化。