javaweb项目插件实现机制-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

javaweb项目插件实现机制

2016-03-10 14:56:42 3738 1

如题,java开发web程序想实现插件机制有什么办法?

就比如:一个论坛,里面有签到,积分,第三方登录,编辑器选择等等的功能,现在我想把他们都抽出来,当成插件,论坛核心只保留用户的登录,注册,发帖,回复等最基本的功能,其他的功能都可以在后台点击安装,自动下载插件安装到服务器,然后就可以使用了

eclipse,idea等开发工具都是java写的,插件都是以jar包来安装的,然后重启重新加载插件
所以我也想让javaweb程序也能以jar包的形式来下载安装并使用

1.看过alibaba开源的druid,就是jar包形式安装,然后将页面部分(数据库操作的监控页面)也都打包到jar里,然后在spring的配置文件里配置访问路径,这样就可以在浏览器里输入地址查看监控信息了,但这样实现与核心部分毫不相干的功能是可行的,但与核心功能有交集的话,这个该怎么处理呢?
举个例子:签到功能,在论坛的首页的某处有一个按钮,用户点击了可以进行签到操作,代码部分还要是实现与用户个人信息相关的更新部分,这个该如何将一些与核心功能(页面)有交集的插件打包成jar,并能直接引入就使用呢?
2.有些插件涉及到了用户的个人信息部分,关于获取用户的信息或处理用户信心该怎么处理比较好呢?
3.后续核心部分版本升级,插件的兼容性处理方面应该怎么处理或在开发插件的时候应该注意些什么呢?

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:57:42

    discuz论坛的插件大概原理可以作为参考,说说我所知道的,有没有用楼主可以自己判断下

    1.首先保证插件相关文件都存储在固定的插件目录下形成规范,这个可以解决你所提到的插件下载以及存储、部署等问题,至于插件打包的格式,这个楼主可以慢慢研究,zip,jar,war都可以,只要可以解压到对应的插件目录即可
    2.可以针对插件进行一个分类,比如独立运行的插件、程序扩展插件、脚本等,然后针对性实现插件的机制,比如独立的运行的插件只要在某些地方进行链接插入即可,如果是程序扩展插件,那么可能需要统一插件调用函数或者其他机制
    3.如果做的完善一些扩展性好一些,还可以要求或让插件继承一些你的类,方便插件编写
    试着回答下楼主的1,2,3点问题:

    插件调用有两种方式,1:预先分布到系统各个位置一些钩子运行的程序,指定插件可以在对应的地方调用 2:插件安装好以后修改基础程序调用钩子,这个和应用的运营方式有关,如果是开源的可能要实现复杂的插件调用逻辑,如果是内部用,可以简单一些,直接修改程序调用插件,这个可以考虑下实际情况
    2.插件只能调用用户信息吧,如果真的让插件可以修改或者考虑安全性,那么可以考虑开发有一个插件权限审核功能,让插件开发的时候向系统发起的权限申请,然后系统来进行审核,或者系统主动派权限,貌似也和实际情况有关
    3.系统升级插件不兼容的部分提示修改,插件升级的话直接更新下载覆盖插件目录

    0 0
相关问答

18

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 1049361浏览量 回答数 18

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 226260浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157775浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 337120浏览量 回答数 8

111

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 295705浏览量 回答数 111

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 646899浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 259920浏览量 回答数 38

82

回答

OSS入门教程

belle.zhoux 2014-07-07 17:14:27 151567浏览量 回答数 82

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192668浏览量 回答数 21

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 475912浏览量 回答数 24
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载