В основном propertyValue
равно нулю, потому что Spring вводит значение после создания бина.
Итак, когда вы делаете:
@Bean
public IWebserviceEndpoint webserviceEndpoint() {
return new WebserviceEndpoint();
}
Spring создает новый экземпляр с propertyValue=null
.
Вы можете инициализировать свой экземпляр атрибута с @ConfigurationProperties
@Bean
@ConfigurationProperties(prefix=...)
public IWebserviceEndpoint webserviceEndpoint() {
return new WebserviceEndpoint();
}
Обратите внимание, что propertyValue
должен иметь установщик.
У вас есть несколько способов решить эту проблему, обычно полезно централизовать свойства в одном классе утилит.
@Component
public class Configs {
@Value("${propery}"
String property;
String getProperty(){
return property;
}
}
А потом:
@Bean
@ConfigurationProperties(prefix=...)
public IWebserviceEndpoint webserviceEndpoint() {
WebserviceEndpoint we = new WebserviceEndpoint();
we.setProperty(configs.getProperty())
return we;
}
Опять же, есть много разных способов решить эту проблему