java@ConfigurationProperties在控制器注释类中工作,但在组件类中不工作
我已经为下面的配置创建了一个WebserviceCredentials类,并在@component类中使用@autowired for WebserviceCredentials。它不起作用(显示空值),但在@restcontroller类中使用时,它起作用,感谢您的帮助
@Component
@ConfigurationProperties(prefix="webservice")
public class WebserviceCredentials {
@Value("${webservice.EndPoint}")
private String webserviceEndpoint;
@Value("${webservice.Username}")
private String username;
@Value("${webservice.Password}")
private String password;
public String getwebserviceEndpoint() {
return webserviceEndpoint;
}
public void setwebserviceEndpoint(String webserviceEndpoint) {
this.webserviceEndpoint = webserviceEndpoint;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
# 1 楼答案
@ConfigurationProperties(prefix=“webservice”)应该位于表示属性文件的POJO上。要在WebServiceRedentials类中使用它,可以使用
你可以参考我最近发布的这个链接
Mapping YMAL properties
# 2 楼答案
设置与如何使用
ConfigurationProperties
无关然后将
@EnableConfigurationProperties(WebserviceCredentials.class)
添加到Configuration
或主应用程序类中详见https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-properties