Нужно ли аннотировать тип / класс с помощью @Component или @Service, чтобы аннотировать его свойства с помощью @Value - PullRequest
1 голос
/ 13 января 2020

У нас есть следующий код, и он работает для нас, и мы можем установить значение видимого через приложение. инициализирован перед тем, как делать инъекции значения?

Ответы [ 2 ]

1 голос
/ 14 января 2020

Ответ - да, но не совсем. Правильным утверждением является то, что экземпляр класса должен быть пружинным компонентом, чтобы он работал @Value. Добавление @Component, @Service делает классы управляемым bean-компонентом Spring, но есть и другие способы использования @Bean.

. В общем случае Spring работает, изменяя или добавляя функции к объявленным bean-компонентам с помощью processor, то же самое поскольку @Transactional, @Value вступит в силу только в том случае, если это bean-компонент, да, вы можете аннотировать любой метод в любом классе, и код скомпилируется, но Spring просто не будет его учитывать.

From @Value документация

Обратите внимание, что фактическая обработка аннотации @Value выполняется BeanPostProcessor

0 голосов
/ 13 января 2020

Вам не нужно аннотировать класс, использующий аннотацию @value @Value означает «получить значение из файла свойств», а значение true из $ {visible: true} означает значение по умолчанию, если его нет в файле свойств

Для лучшего понимания @component, посмотрите на эту топи c: Какая польза от @Component весной?

Для использования @value вы можете посмотреть на это статья Baeldung: https://www.baeldung.com/spring-value-annotation

Сайт Baeldung действительно полезен для весенней загрузки Info! Предлагаю вам в закладки;)

Надеюсь, я смогу немного помочь!

...