Spring组件依赖于从application.properties加载道具但不加载道具的配置



由于缺乏Spring框架的知识,我遇到了一些困难,无法实现如何让它工作。我想做的很简单。我想在RestTemplateComponentconstructorgetRestTemplate方法中使用注入的AppProperties,但所有道具都为空。我想我明白为什么。。这是因为RestTemplateComponent按顺序首先加载,这就是AppProperties道具为空的原因。

有没有可能告诉Spring先加载AppProperties,以便在RestTemplateComponent中使用它。

顺便说一句,问题只发生在启动时,当我将它注入控制器时,并在请求使用这些对象时,并没有任何问题。

应用程序属性

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;
}
}

好的,最后我在AppProperties类中添加了注释@PropertySource({"classpath:application.properties"}(,然后当我尝试在SpringBootApplication中自动连接AppProperties时,我在调试中看到道具已初始化。

最新更新