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