Класс недвижимости:
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "my-api")
public class MyApiProperties {
...
private MyClient myClient;
@Getter
@Setter
public static class MyClient {
private String host;
private long connectionTimeout;
private long receiveTimeout;
}
}
Я могу настроить его:
my-api:
my-client:
host: http://1...
connection-timeout: 30000
receive-timeout: 60000
И я могу ввести его:
@Value("${my-api.my-client.host}")
private String host;
Но могу ли я ввести полный объект, как это?
@Value("${my-api.my-client}")
private MyClient myClient;
Нет. Это не компонент и @Value так не работает. Вы можете внедрить вложенный MyApiProperties как следует, так как свойства являются частью этого объекта.
Возможный дубликат Свойство Spring @Value для пользовательского класса