@Inject和@ValueMapValue批注之间的区别

Tad*_*lić 1 java model sling aem

在阅读有关使用模型的AEM文档时,我无法弄清楚该字段上方的@Inject@ValueMapValue注释之间的区别

我尝试使用两者,并且两者看起来都一样,所以我一定缺少一些东西。

awd*_*awd 8

它们并不相同,@Inject是一种通用注释,可从多个注入器中获取该值。

@ValueMapValue是特定于注入器的注释,将专门从valuemap注入器中选取值。相当于@Inject @Source("valuemap")

当仅从一个注入器获得注入值时,它们的行为将是相同的,但是,如果两个不同的注入器(例如脚本绑定和值映射)提供相同的属性,则它们可能注入不同的值。在这里阅读更多。