Разница между аннотациями @Inject и @ValueMapValue

Читая документацию АЕМ об использовании модели, Я не мог понять, что такое разница между аннотациями @Inject и @ValueMapValue над полем.

Я пытался использовать оба, и они оба кажутся одинаковыми, поэтому я должен что-то упустить.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
4 608
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это не одно и то же, @Inject — это аннотация общего назначения, которая делает значение доступным из нескольких инжекторов.

@ValueMapValue — это аннотация, специфичная для инжектора, которая специально выбирает значение из инжектора карты значений. Это эквивалентно @Inject @Source("valuemap")

Когда введенное значение доступно только из одного инжектора, их поведение будет одинаковым, однако, если одно и то же свойство предоставляется двумя разными инжекторами (скажем, script-binding и valuemap), они могут вводить разные значения. Подробнее здесь.

Другие вопросы по теме