The usual way of using OSGi services from code is to use its API to grab the service (this often requires, extending an interface, implementing some methods, etc). Also, in order to expose a functionality as an OSGi service the OSGi API needs to be used.
OSGi also has an specification known as Blueprint Services which allows avoiding using the API and thus having OSGI specific code within the bundle. Instead the services needed or exposed are specified in an XML file, annotations, ... which is cleaner and easier to use.
In order to achieve this, Liferay will use the Eclipse Gemini (previously known as Spring DS) which allows injecting as well beans declared through Spring (and that's a great thing since Liferay uses Spring beans extensively)