今天和思雨同学把动态菜单,权限以及Bundle的动态拔插基本给解决了。
大致的场景是这样的:
1、进行权限控制,RBAC0,权限-角色-菜单,菜单只是对应到页面,不涉及页面的具体操作组件,实现起来不是太麻烦。(之前本来打算把权限控制到按钮的,但是项目只要求到页面就方便了很多)。
2、权限控制这块,之前打算控制到组件,用的自定义标签,TagSupport或SimpleTagSupport,其他的项目用了自定义标签,不过麻烦也随之而来了。传统Web项目,有WEB-INF目录,自定义标签放在这个目录下。OSGi以Bundle形式开发,同时也没有WEB-INF目录,如何让OSGi识别tld文件,同时让其他Bundle能够使用这个自定义标签成了问题(把jetty模块当成Bundle嵌入其中的这种方式,我像通过解压jettyBundle,将标签放入jettyBundle的WEB-INF目录,但估计这种方式可能性较大,提供大家参考,可以自己动手试一把,我还没试验过)。
3、权限这块的,就是简单的数据库设计,不算太麻烦。这也是大家可以想到的。之前的系统每个功能模块的菜单权限通过配置文件配置,然后解析存放入数据库。用户登录时读配置文件校验。我的建议是保存数据库。为了保存菜单扩展点,首先判断数据库中是否有新Bundle的信息,没有就解析保存,有就直接读数据库。
4、由此可见,上面的配置文件之类的东西纯粹是依赖OSGi扩展点的。
5、OSGi的可拔插,之前我打算通过Spring DM发布服务,监听Bundle启动。解析Bundle之后保存入库。后来实现BundleListener接口,实现 public void bundleChanged(BundleEvent event) 方法,将解析方法放入其中。 注意:BundleListener接口所在的Bundle启动级别必须先启动,这里涉及一个启动级别的问题。
6、动态拔插:在平台启动之后,通过 install file 将开发模块install其中(注意,install之后bunldle的状态是Installed而不是started)。卸载就更方便了。
7、动态部署:这个问题结合上面的问题也很方便,上传至服务器指定目录,通过shell脚本安装。当然也可以通过数据库表保存相关Bundle路径信息实现。
提供给各位朋友参考,大家有更好的思路也可以和我讨论。
分享到:
相关推荐
Eclipse插件基于OSGi(Open Service Gateway Initiative)框架,允许模块化开发和部署。 二、菜单与权限控制 在Eclipse中,菜单和工具栏的可见性和可操作性可以根据用户的权限进行控制。这种控制不仅可以防止未经...
MyEclipse的插件系统基于Eclipse平台,遵循OSGi(开放服务网关规范)框架。这意味着插件是独立的模块,可以单独安装、更新和卸载,互不影响。每个插件都有特定的功能,例如代码提示、调试工具、版本控制集成等。 2...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...
它以 jar 的形式发布,部署容易,使用也较为便捷。 Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。 Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器...