public interface Plugin { void doSomething(); } @Component public class PluginImpl implements Plugin { @Override public void doSomething() { } } @Component public class PluginManager { @Reference private Plugin plugin; public void executePlugin() { plugin.doSomething(); } } <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" name="PluginManager"> <implementation class="com.example.PluginManager"/> <reference interface="com.example.Plugin" bind="setPlugin" unbind="unsetPlugin"/> </scr:component> public interface Service { void sendMessage(String message); } @Component public class ServiceImpl implements Service { @Override public void sendMessage(String message) { } } @Component @Service public class ServiceConsumer { @Reference private Service service; public void sendServiceMessage(String message) { service.sendMessage(message); } } <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" name="ServiceConsumer"> <implementation class="com.example.ServiceConsumer"/> <service> <provide interface="com.example.Service"/> </service> <reference interface="com.example.Service" bind="setService" unbind="unsetService"/> </scr:component>


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