分层:
modual:
主要作用于包级管理与共享代码
lifecycle:
主要作用于执行期间的模块管理与訪问osgi底层框架
service:
主要作用于多模块之间的相互通信
demo:
hello-provider/pom.xml
hello-provider/BundleActivator:package org.hello.provider.impl; import org.hello.provider.IUserService; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class UserServiceActivator implements BundleActivator { public void start(BundleContext context) throws Exception { System.out.println("registerService......"); context.registerService(IUserService.class.getName(), new UserService(), null); } public void stop(BundleContext context) throws Exception { } }
hello-client/pom.xml:
hello-client/BundleActivator:
package org.hello.client; import org.hello.provider.IUserService; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; public class Client implements BundleActivator { public void start(BundleContext context) throws Exception { ServiceReference reference=context.getServiceReference(IUserService.class.getName()); System.out.println(((IUserService)context.getService(reference)).add()); } public void stop(BundleContext context) throws Exception { } }
将bundle安装到本地仓库且部署到karaf(參考前一篇)
启动bundle
通过下面命令查看bundle的id
list
通过下面命令,启动bundle
bundle:start 78
參考演示样例