6

如果可以选择使用 Sling Models 或 WCM 使用类,何时以及为什么应该首选哪一个?

他们中的任何一个都有更好的表现吗?

提前致谢

4

1 回答 1

6

Sling 模型为您节省了大量时间来访问作为当前页面/资源的简单对象、注入一些属性或服务、从资源或 sling http 请求适应您的模型。当然,使用普通 API,您的代码会执行得更快一些,因为您只初始化您真正需要的对象,但您必须“手动”完成所有这些事情。我认为这个简洁的介绍很好地概述了您可以使用的所有可能的实现。你也可以看看官方文档。您可以在下面找到您可以期待的内容的快速概览,并希望使您的决定更容易(引自官方的Sightly 文档)。

Java 使用提供者

通过捆绑提供的使用对象的优点:

  • 与类似代码的 Sling 模型相比,初始化和执行速度更快
  • 易于从其他类似的 Use-objects 扩展
  • 单元测试的简单设置

资源支持的使用对象:

  • 与类似代码的 Sling 模型相比,初始化和执行速度更快
  • 易于通过搜索路径覆盖或使用 sling:resourceSuperType 属性从继承组件中覆盖,从而提供更大的灵活性
  • 组件的业务逻辑位于使用对象的 Sightly 脚本旁边

通过捆绑提供的使用对象的缺点:

  • 在组件覆盖方面缺乏灵活性

资源支持的使用对象:

  • 不能扩展其他 Java 对象
  • Java 项目可能需要不同的设置以允许运行单元测试,因为对象将像内容一样部署

吊索模型使用提供者

好处

  • 方便的注入注释,用于数据检索
  • 易于从其他 Sling 模型扩展
  • 单元测试的简单设置

缺点

  • 在组件覆盖方面缺乏灵活性,依赖于 service.ranking 配置

如果你问我,我总是将框架用作吊索模型或切片,这使得开发更容易和更快。最后,使用框架对性能的影响并不是真正的问题,不会是项目中唯一的一个第三方框架。但是,如果您的项目是面向性能的,那么您可能可以使用所有可能的方式进行一些测试,并确定这样的框架是否适合您的需求(或者只是混合使用两者)。

于 2016-04-28T12:56:48.710 回答