2014-02-12 3 views
6

Я новичок в Apache Sling, CQ5 и т.д.Какова цель resourceResolver.adaptTo (Session.class) в Apache Sling?

В нашем коде, мы имеем фрагмент кода похож на это:

void perform(SlingHttpServletRequest request, SlingHttpServletResponse response) { 
    ResourceResolver resourceResolver = request.getResourceResolver(); 

    Session session = resourceResolver.adaptTo(Session.class); 
    PageManager pageManager = resourceResolver.adaptTo(PageManager.class); 
} 

Что adapTo здесь делает?

Также есть хорошая документация/руководство пользователя. Я могу прочитать, чтобы начать использовать Sling, CQ5 и т. Д.?

ответ

6

Метод adaptTo(), найденный во многих объектах строп, позволяет «преобразовывать» объекты. Sling может решить добавить метод resolver.getSession(), но это было бы не очень гибким. Хорошая вещь об адаптации - это то, что она динамична. вы можете создавать адаптеры для преобразования между различными типами (они являются службами OSGi). Sling и CQ5 также включают bunch of adapters по умолчанию. В sling Wiki есть некоторые документы о adapters.

О том, как начать с Слинг и CQ5, то sling site это хорошее место, чтобы начать

+0

Но 'ResourceResolver' больше похож на локатором. Я имею в виду, он трансформируется в разные типы классов или находит подходящий класс и возвращает его? – h2o

+1

Это скорее завод. Кроме того, это зависит от реализации конкретной адаптации, которую вы вызываете. Обычно он создает новый объект, беря то, что необходимо от оригинального. Я полагаю, что resourceResolver.adaptTo (PageManager.class) в основном делает pageManagerFactory.getPageManager (resourceResolver) – santiagozky

Смежные вопросы