Expand my Community achievements bar.

Adobe Summit 2025: AEM Session Recordings Are Live! Missed a session or want to revisit your favorites? Watch the latest recordings now.

Mark Solution

This conversation has been locked due to inactivity. Please create a new post.

SOLVED

Sling Annotations

Avatar

Community Advisor

Which annotation is prefered to access the Service inside another service and why? @reference or @OSGiService.

 

Thanks

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @Madhur-Madan,

On OSGi service level you should use Reference annotation. So this will be option you should use in case you want to get reference of other OSGi service inside another.

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

@Component
public class YourService {
   
   @Reference
   private OtherService otherService;
}

 

OSGiService annotation is dedicated for Sling Model it will not work inside OSGi service/component. You can use it, in case you would like to inject OSGi Service into your Sling Model.

See also below links:

View solution in original post

1 Reply

Avatar

Correct answer by
Community Advisor

Hi @Madhur-Madan,

On OSGi service level you should use Reference annotation. So this will be option you should use in case you want to get reference of other OSGi service inside another.

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

@Component
public class YourService {
   
   @Reference
   private OtherService otherService;
}

 

OSGiService annotation is dedicated for Sling Model it will not work inside OSGi service/component. You can use it, in case you would like to inject OSGi Service into your Sling Model.

See also below links: