ResourceResolver is one of the powerful API interface provided by Sling. Its job is to return resource object based on the given input, which can be a path to the resource, query or parent resource to get its children. Resource resolver object can be accessed in any one of the following ways -
1. Syntax for getting ResourceResolver from ResourceResolverFactory:
ResourceResolver serviceResourceResolver = resourceResolverFactory.getServiceResourceResolver(authenticationInfo);
Resource someResource = serviceResourceResolver.getResource("/path/to/resource");
someResource.adaptTo(MyModel.class);
NOTE: We'll use ResourceResolverFactory in situations such as - working to get JCR session and while we don't have request and resource objects (that means, while not dealing with servlets).
2. Syntax for getting ResourceResolver from Request object:
ResourceResolver resourceResolver=request.getResourceResolver();
3. Syntax for getting ResourceResolver from Resource object:
ResourceResolver resourceResolver= resource.getResourceResolver();
NOTE: We can retrieve a ResourceResolver using a ResourceResolverFactory and a service-user mapping as shown in the links below.
http://www.aemcq5tutorials.com/tutorials/resourceresolver-from-resourceresolverfactory/
http://www.adobeaemclub.com/access-to-resourceresolver-in-osgi-services-aem-6-1/
https://aem6tutorials.wordpress.com/2016/02/10/how-to-get-resourceresolver-from-resourceresolverfactory-in-aem/
Regards,
TechAspect Solutions