技术开发 频道

基于Web的OSGi框架构想


IT168技术文档】 
    这两天没什么事情,研究了一下RoR,粗看了一下,感觉Ruby语言比较可怕,短期内不研究。 

    由于正在开发MINI OSGi,我在想,能不能使用Rails的模式,在OSGi上建立Web应用呢? 

    于是仔细地想了一下,感觉还是比较可行的,咱们可以这样做: 

    规定每个Service就是一个action,Service中的Method是action的具体执行方法,代码如下:
public class SomeAction{ public class someMethod(HttpServletRequest request, HttpServletResponse response) throws Exception{ ... ... } }
    注册Service的Java代码
public class SomeBundle extends BundleActivator{ private ServiceRegistration registration; public void start(BundleContext context) throws BundleException{ // 注册服务 registration = context.registerService("hello", new SomeAction(), null); } public void stop(BundleContext context) throws BundleException{ // 注销服务 registration.unregister(); } }
    安装并启动该Bundle后,在浏览器中敲入 http://www.xxx.com/hello/someMethod 就会执行对应Service的someMethod方法的输出结果。这时,我们只需要实现一套IoC框架即可,这岂不很方便? 

    这样做的好处是: 

    真正实现动态更新Actions,只需要在后台启动/更新/停止OSGi的Bundles即可。 
    极大地简化了开发,不用写那么多url-mapping了。 
    如果在同一名称注册了多个服务,那可以在IoC容器中进行筛选,最常用的就是区别登陆用户与匿名用户。 
    暂时只想到这么多.... -_-! 
    该想法正在验证中,理论上应该可行,希望能通过这个做个真正的基于OSGi的Web应用。努力努力...

0
相关文章