Почему мы расширяем класс WCMUsePojo при работе с AEM?

Почему мы расширяем абстрактный класс WCMUsepojo в нашей программе, работая с AEM?

В чем преимущество использования этого класса?

2 ответа

Решение

Потому что в механизме разработки компонентов AEM вам, вероятно, нужен способ предоставления серверной логики компонентам.

Это потому что Sightly (при использовании в качестве языка сценариев рендеринга вместо JSP страниц) специально представляет собой ограниченный язык шаблонов, который позволяет выполнять только небольшие базовые операции, а тяжелая логика должна выполняться внутри Java класс или server-side JS (что вы ссылаетесь, используя data-sly-use элемент внутри скрипта Sightly).

Это обеспечивает лучшую развязку бизнес-логики, поэтому ваш код будет легче обслуживать, а также будет легче отлаживать.

Чтобы абстрагировать Java-класс компонента с контекстом страницы или связывающими объектами, ранее Adobe WCMUse или пользовательская реализация класса Use. Если вы работаете с AEM 6.1 или 6.2 WCMUsePojo класс используется (или даже Sling Models). С выпуском AEM 6.3 и AEM Core WCM Components мы видим, что используя Sling Models были рекомендованы Adobe как лучшая практика.

Хотя предыдущий ответ дает довольно хорошее объяснение, я напишу свой собственный - краткий:

  1. Вы можете использовать простой Pojo (не расширяйте класс Adobe) с java-use-api. Но в этом случае вы не сможете легко получить доступ к ресурсам / услугам.
  2. Вы можете расширить WCMUsePojo, чтобы получить возможность использовать ресурсы / сервисы.
  3. Кроме того, вы можете пойти с Sling Models способом, который даст вам больше гибкости.
Другие вопросы по тегам