前文我们假想我们有足够多的插件可以选择,那么我们可能无需开发,便可以动态构建出一个应用来。如果现有的插件无法满足需求,那么意味着我们需要二次开发一个插件或者新开发插件。
祝威廉:如何快速搭积木式构建一个web应用zhuanlan.zhihu.com今日目标
开发一个可以上传和下载的jar包的应用。上传需要用户校验,下载不需要。
为了完成这个功能,我们首先应该思考
- 哪些现成插件可以满足部分功能?
- 有插件可以做二次开发么?
显然,user-system 可以满足用户相关的功能,包括注册,登录,权限校验等等。所以这个插件是我们需要依赖的。现在没有一个现成的插件可以完成上传下载jar包,所以我们需要开发一个新的插件完成这部分功能。
开发总体步骤
大致要做如下几个工作:
- 设计库表
- 开发项目
- 发布插件
库表
因为我们会依赖user-system插件,用户相关的工作我们不需要做了。我们只需要两个表:
存储上传文件路径的表:
CREATE TABLE `plugin_store_item` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(256) DEFAULT NULL,
`path` text,
`version` varchar(256) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
上传用户和文件关联表:
CREATE TABLE `plugin_user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`