若依微服务(三)新增一个微服务——附件管理服务
附件管理服务
若依本身有一个文件上传模块,但是实现的功能比较基础。
我打算构建一个更偏应用的附件管理服务,功能更加完整丰富。
功能如下:
- 附件的上传、批量上传、下载、打包下载、查询、删除、假删除
- UI界面包含附件的预览和类似网盘的层级目录
- 完善的权限控制
通过这个附件管理服务的开发,熟悉一下若依框架微服务的添加流程。
思考
想了想大概分这几步:
- 在moudles服务中增加一个ruoyi-annex服务
- 编辑pom文件,添加依赖
- 编辑配置文件,挂接到nacos
- 登录nacos编辑ruoyi-gateway的配置文件,添加路由
- 设计附件表nnx_annex,包含字段:文件类型,层级,唯一ID,删除标识,描述,文件名,文件存储空间ID,文件路径,租户ID
- 设计附件权限表nnx_annex_role, nnx_annex_user
- 设计附件存储空间nnx_storage,(附件管理中心按理说应该支持多种存储方案如 window文件系统、对象存储、mongodb,所以文件存储在哪里就说不定了),包含字段:文件存储空间ID,名称,类型,链接参数(json)
- 启动若依代码生成,将上述表格CURD代码都生成出来
- 添加上传、批量上传、下载、打包下载、查询、删除、假删除的接口
- 实现上述接口
- 在ruoyi-api中暴露上述接口
- 仿造若依代码生成服务,构建UI界面
- 添加类似网盘的层级目录窗体
- 借助KKfileview实现文件预览
实践
1 新建一个空的module
左边栏在ruoyi-modules上右键->新建->新模块,打开新建模块窗体。
我的Idea是最新的社区免费版,不能直接新建springboot项目,但是没关系,我们一步步自己添加需要的内容。
左侧默认就行,右边名称改为ruoyi-annex,位置不变,语言选java,构建系统选maven,父项选ruoyi-modules。点击创建。
创建完成后项目结构如下图:
右侧maven管理栏如下图:
ruoyi-modules的pom文件会新增一行,如下图:
2. 修改pom文件
默认创建的Pom文件跟我们项目使用的还是有很大差异,需要根据同级项目的pom文件修改。这里由于我们需要用到数据库,所以仿造ruoyi-system模块修改Pom文件。
<artifactId>标签修改为ruoyi-modules-annex
<artifactId>标签同级增加<description>标签,增加一些对模块的描述。
<artfiactId>标签同级增加<dependencies>标签,来引入依赖,
每个依赖库都需要在<dependencies>标签内部增加<dependency>标签来声明引用,明确标出引用的包名、位置、和版本。
集成nacos:
<!-- SpringCloud Alibaba Nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- SpringCloud Alibaba Nacos Config --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
集成sentinel:
Sentinel
<artifactId>标签
合集:
微服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通