Kotlin Spring boot @Value процесс аннотации - PullRequest
0 голосов
/ 05 марта 2019
@Value("\${datasource.host}")
private val host: String = ""

Я написал следующий код на KOTLIN, и он работал нормально.

Я не понимаю, как host был введен в host.Насколько мне известно, значение не должно вводиться, поскольку переменная host имеет значение val.

Как работает этот код?

1 Ответ

0 голосов
/ 05 марта 2019

Краткий ответ: Весна - это волшебство!

Для свойства Kotlin val не обязательно означает, что свойство является постоянным.(Это не точный эквивалент Java final здесь.) Это просто означает, что есть метод get(), но нет метода set().

Это оставляет возможность для значения изменить каким-либо другим способом,(Например, свойство может иметь пользовательский метод получения, который возвращает разные значения.)

Я не совсем уверен, как Spring работает в своем волшебстве;он может быть в состоянии установить поле поддержки свойства напрямую, или он может создать скрытый подкласс, который может.В любом случае, он вполне способен установить val свойства.(Вы также можете увидеть это в Hibernate.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...