为什么我们在使用 AEM 时扩展 WCMUsePojo class?
Why we extends WCMUsePojo class while working with AEM?
为什么我们在使用 AEM 时在我们的程序中扩展 WCMUsepojo 抽象 class?
使用这个class有什么好处?
因为在AEM的组件开发机制中,您可能需要一种方式来为组件提供后端逻辑。
那是因为 Sightly
(当用作呈现脚本语言而不是 JSP
页面时)是一种有限的模板语言,它只允许执行一些小的基本操作,而繁重的工作逻辑应该在 Java
class 或 server-side JS
内完成(您在 Sightly 脚本中使用 data-sly-use
元素引用)。
这提供了更好的业务逻辑解耦,因此您的代码将更易于维护,也更易于调试。
为了使用页面上下文或绑定对象抽象组件 Java class,之前使用了 Adobe 的 WCMUse
,或者使用 class 的自定义实现。如果您使用的是 AEM 6.1 或 6.2 WCMUsePojo
class(甚至是 Sling 模型)。随着 AEM 6.3 和 AEM 核心 WCM 组件的发布,我们看到使用 Sling Models
已被 Adobe 提倡为最佳实践。
虽然之前的答案给出了很好的解释,但我会写一个自己的 - 简短的:
- 您可以通过 java-use-api 使用简单的 Pojo(不要扩展任何 Adobe 的 class)。但在这种情况下,您将无法轻松访问 resources/services.
- 您可以扩展 WCMUsePojo 以获得使用 resources/services 的能力。
- 此外,您可以使用 Sling Models 方式,这会给您带来更大的灵活性。
为什么我们在使用 AEM 时在我们的程序中扩展 WCMUsepojo 抽象 class?
使用这个class有什么好处?
因为在AEM的组件开发机制中,您可能需要一种方式来为组件提供后端逻辑。
那是因为 Sightly
(当用作呈现脚本语言而不是 JSP
页面时)是一种有限的模板语言,它只允许执行一些小的基本操作,而繁重的工作逻辑应该在 Java
class 或 server-side JS
内完成(您在 Sightly 脚本中使用 data-sly-use
元素引用)。
这提供了更好的业务逻辑解耦,因此您的代码将更易于维护,也更易于调试。
为了使用页面上下文或绑定对象抽象组件 Java class,之前使用了 Adobe 的 WCMUse
,或者使用 class 的自定义实现。如果您使用的是 AEM 6.1 或 6.2 WCMUsePojo
class(甚至是 Sling 模型)。随着 AEM 6.3 和 AEM 核心 WCM 组件的发布,我们看到使用 Sling Models
已被 Adobe 提倡为最佳实践。
虽然之前的答案给出了很好的解释,但我会写一个自己的 - 简短的:
- 您可以通过 java-use-api 使用简单的 Pojo(不要扩展任何 Adobe 的 class)。但在这种情况下,您将无法轻松访问 resources/services.
- 您可以扩展 WCMUsePojo 以获得使用 resources/services 的能力。
- 此外,您可以使用 Sling Models 方式,这会给您带来更大的灵活性。