public class MyService implements IService { public void doSomething() { System.out.println("Doing something..."); } } public class MyClient { private ServiceLookup lookup; public void setServiceLookup(ServiceLookup lookup) { this.lookup = lookup; } public void doSomethingWithService() { IService service = lookup.getService(IService.class); service.doSomething(); } } public class MyComponent { private MyService service; public void activate() { service = new MyService(); registerService(IService.class, service); } public void deactivate() { unregisterService(IService.class, service); } } <scr:component name="MyComponent" immediate="true"> <implementation class="com.example.MyComponent"/> <service> <provide interface="com.example.IService"/> </service> </scr:component> <reference bind="setServiceLookup" interface="com.example.ServiceLookup" cardinality="1..1" policy="static"/> <scr:component name="ServiceRepository" immediate="true"> <implementation class="com.example.ServiceRepository"/> <reference bind="addService" unbind="removeService" interface="com.example.IService" cardinality="0..n" policy="dynamic"/> </scr:component>


上一篇:
下一篇:
切换中文