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

时间:2019-03-11 12:05:43

标签: java model aem sling

在阅读有关使用模型 AEM 文档时, 我不知道字段上方的 @Inject @ValueMapValue 批注之间的差异是什么。

我尝试同时使用这两种方法,而且它们看起来都一样,所以我一定缺少一些东西。

1 个答案:

答案 0 :(得分:6)

它们是不同的,@Inject是一个通用注释,它使许多注入器都可以使用该值。

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

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