Spring组件取决于从application.properties加载prop但未加载prop的配置

问题描述 投票:0回答:1

我有一些困难,由于缺乏Spring框架的知识,我无法实现它的工作方式。我想做的很简单。我想在RestTemplateComponent constuctorgetRestTemplate方法中使用注入的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;
    }
}
spring frameworks components javabeans autowired
1个回答
0
投票
[好,最后我通过在AppProperties类中添加注释

@@ PropertySource({“ classpath:application.properties”}))>>来完成它的工作,然后当我尝试在SpringBootApplication中自动装配AppProperties时,我在调试中看到道具是初始化。

© www.soinside.com 2019 - 2024. All rights reserved.