@Reference&和@Reference之间有什么区别? CQ中的getScriptHelper()?

时间:2015-05-08 07:31:56

标签: cq5 aem

我正在查看一些CQ代码,发现可以使用

获取服务
@Reference

private JCRService searchService;

OR

TaxonomyService taxonomyService = getScriptHelper()
            .getService(TaxonomyService.class);

两种方法之间有什么区别,哪种更好?

1 个答案:

答案 0 :(得分:1)

ScriptHelper旨在让您从表示层(jsp,sightly等)访问OSGi服务,如果您在Component中,@ Reference是获取服务引用的最佳方式。

它还有几个优点,因为它将由服务组件运行时(SCR)注入。例如:

  • 定义引用是静态还是动态
  • 如果其组件不可用,您可以确定您的组件不会被激活
  • 定义参考的基数
  • 使用过滤器来获取特定目标,例如获取特定实例。