gpt4 book ai didi

spring - 如何将@ConfigurationProperties Autowiring 到@Configuration中?

转载 作者:行者123 更新时间:2023-12-02 08:21:40 25 4
gpt4 key购买 nike

我有一个如下定义的属性类:

@Validated
@ConfigurationProperties(prefix = "plugin.httpclient")
public class HttpClientProperties {
...
}

还有一个像这样的配置类:

@Configuration
@EnableScheduling
public class HttpClientConfiguration {

private final HttpClientProperties httpClientProperties;

@Autowired
public HttpClientConfiguration(HttpClientProperties httpClientProperties) {
this.httpClientProperties = httpClientProperties;
}

...
}

当启动我的 Spring Boot 应用程序时,我得到了

Parameter 0 of constructor in x.y.z.config.HttpClientConfiguration required a bean of type 'x.y.z.config.HttpClientProperties' that could not be found.

这不是一个有效的用例,还是我必须以某种方式声明依赖项?

最佳答案

这是一个有效的用例,但是,您的 HttpClientProperties 未被拾取,因为组件扫描器未扫描它们。您可以使用 @Component 注释您的 HttpClientProperties:

@Validated
@Component
@ConfigurationProperties(prefix = "plugin.httpclient")
public class HttpClientProperties {
// ...
}

另一种方法(如 Stephane Nicoll 中所述)是在 Spring 配置类上使用 @EnableConfigurationProperties() 注释,例如:

@EnableConfigurationProperties(HttpClientProperties.class) // This is the recommended way
@EnableScheduling
public class HttpClientConfiguration {
// ...
}

Spring boot docs 中也对此进行了描述.

关于spring - 如何将@ConfigurationProperties Autowiring 到@Configuration中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43797924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com