OSGi的模块话和热插拔体验

例子是BlueDavy的OpenDoc上的内容,是一个简单的用户登陆的例子。

 

 

启动应用之后

 

通过http://127.0.0.1:8080/demo/page/login.htm进行访问

我们可以通过控制台输入ss可以看到LADP、DB和ConfigFile三个提供验证的服务的Bundle都在提供服务,

我们通过页面输入用户名和密码,

在后台可以看到打印输出了LDAP验证

 

好,那我们来stop LDAP验证的Bundle,不需要重启应用,我们直接再次登陆,发现依然可以,控制台打印出DB验证。

那我们接下来关系的事情是,如果我们把三个提供验证的Bundle都stop了,对用户登陆的Bundle会不会影响呢?

 

由于只能上传三个附件,所以就不截图了。

答案是不会影响,只是在登陆时候,会告诉你没有能够提供服务的Bundle。

也就是说Bundle之间的确应依赖影响,由一个Bundle失效而引起连锁反应是不存在的。

但是从业务的角度上来讲,如果某些Bundle无法提供服务,那整体应用对外提供的服务也会收到很大的影响,即使应用的其他Bundle不受到什么影响。

你可能感兴趣的:(osgi)