@Inject 和@ValueMapValue 注解的区别

Difference between @Inject and @ValueMapValue annotations

在阅读 AEM 有关使用 models 的文档时, 我不知道字段上方的 @Inject@ValueMapValue 注释之间的 difference 是什么.

我试过使用两者,它们看起来都一样,所以我一定是遗漏了什么。

它们不一样,@Inject 是一个通用注解,可以从多个注入器中获取值。

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

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