千家信息网

网盘进化史就这样(下)——功能实现

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,上回说到网盘的思路简单设计以及和升级迭代的过程详细内容请回顾https://blog.51cto.com/yerikyu/2361380本文主要是介绍,如何通过jHipster快速搭建网络云盘服务。我
千家信息网最后更新 2026年11月01日网盘进化史就这样(下)——功能实现

上回说到网盘的思路简单设计以及和升级迭代的过程
详细内容请回顾https://blog.51cto.com/yerikyu/2361380
本文主要是介绍,如何通过jHipster快速搭建网络云盘服务。
我们使用jHipster构建一个web服务是一件简单便捷的事情,启动起来也很舒服的,如下图所示,通过命令jhipster就可以启动该框架为我们提供创建项目的功能

之后是进行项目名称的设置,还有包名,认证方式等配置设置。不懂的话,建议一直回车选择默认配置,之后在数据库选型这一栏,由于项目需要,这里我们选择mongodb。

之后我们还需要选择启动仓库,笔者习惯使用gradle

其他的按照默认配置就行啦,之后还是一样的 ,一路回车暴击,等待项目创建完成,你们会观察到创建项目中,不断的新建文件以及相关依赖的进度条,等待创建完成。
这样就形成了我们的构建的web服务了,服务可以启动了,然而毕竟是通过框架搭建起来的web服务还是比较简单的,我们需要再进行个性化开发。在图中我们可以看到一个清晰的后端服务框架

因为我们在创建项目的过程中,已经明确说明需要用到mangodb,因此,框架已经为我们提供了mangodb数据库的docker-compose文件,我们可以直接使用的,不过此时docker container的数据是不会保存的,如果我们重启docker服务,将会导致数据丢失,因此我们需要为该容器挂载一个持久化卷,修改下docker-compose文件即可,设置镜像自动重启

version: '2'services:    utils-mongodb:        image: mongo:4.0.2        ports:            - "27017:27017"        volumes:            - ~/volumes/jhipster/utils/mongodb/:/data/db/        restart: always

准备工作完成之后,我们接下来是开始网盘功能的简单开发了,在jHipster中,对象之间的关系可以通过JDLJHipster Domain Language来表达,其表达方式比较简单,这个就是一个简单的网盘逻辑关系设计

entity UploadFile {    uploadTime String}entity DownloadFile {   name String    downloadTime String    count Instant}relationship OneToOne {   UploadFile{name} to DownloadFile}// Set pagination optionspaginate * with infinite-scrollpaginate * with paginationdto * with mapstruct// Set service options to all except fewservice all with serviceImpl// Set an angular suffixangularSuffix * with smallestpan

设计完成之后使用命令jHipster import-jdl ./jdl/p1.jdl 对该文件进行编译,执行,至于具体原理本文不作深入分析,下次有机会再说:)
执行之后是需要生成数据库mapper层来完成对数据的自动写入读出功能
./gradew build

生成结果如下

接下来是对service进行开发,基于前面jdl自动生成的DTO、impl等文件,我们需要的就是对接口进行调通,不妨开发一个接口类,实现上传和下载,网盘不就是这样嘛,一个远端的存储设备,提供上传和下载功能嘛

@Servicepublic class FileServiceImpl implements FileService {    @Override    public Object upload(Object object) {        return null;    }    @Override    public Object download(Object object) {        return null;    }}

这里我们主要使用spring-cloud框架中的Grid这个组件,实现ORM的功能,完成对mongodb数据库的写入写出,提高我们的开发效率,不过这样做从一定程度上降低代码的运行效率,这个优化思路并不是本文介绍内容

@Servicepublic class GridfsService {    @Autowired    private MongoDbFactory mongodbfactory;    /**     * 插入文件     * @param file     * @return     */    public GridFSInputFile save(MultipartFile file){        GridFS gridFS = new GridFS(mongodbfactory.getLegacyDb());        try{            InputStream in = file.getInputStream();            String name = file.getOriginalFilename();            GridFSInputFile gridFSInputFile = gridFS.createFile(in);            gridFSInputFile.setFilename(name);            gridFSInputFile.setContentType(file.getContentType());            gridFSInputFile.save();            return gridFSInputFile;        }        catch (Exception e){}        return null;    }    /**     * 据id返回文件     */    public GridFSDBFile getById(ObjectId id){        DBObject query  = new BasicDBObject("_id", id);        GridFS gridFS = new GridFS(mongodbfactory.getLegacyDb());        GridFSDBFile gridFSDBFile = gridFS.findOne(query);        return gridFSDBFile;    }    /**     * 删除     * @param id     */    public void remove(String id) {        GridFS gridFS = new GridFS(mongodbfactory.getLegacyDb());        gridFS.remove(new ObjectId(id));    }    public void setMongodbfactory(MongoDbFactory mongodbfactory) {        this.mongodbfactory = mongodbfactory;    }}

好了,开发至此,代码就已然开发完毕了,可以正式启用这个超简洁的小小盘,至于说接口格式,网络请求路径等这些,jHipster都已经为你自动生成好了,就在web.rest里面,各位看官不妨阅读下源码,倒是简洁易懂呢,由于这个只是后台页面,所以可以通过postman这样的调试工具对这个功能进行测试即可,后面有机会在来介绍该页面的前端开发


使用jHipster这样的框架辅助我们开发给我们减少了很多工作量,妥妥提升我们开发的幸福感:)

代码仅供参考,不妨来个star:https://github.com/Yerikshu/smallestpan
谢啦~~

文章参考:
jHipster官方网站:https://www.jhipster.tech
Grid介绍:https://www.baeldung.com/spring-data-mongodb-gridfs

开发 数据 文件 服务 功能 框架 项目 数据库 生成 代码 就是 设计 选择 配置 简洁 接下来 内容 可以通过 命令 思路 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 互联网科技公司排名 云之行互联网科技 互联网科技有限公司经营范围 金融科技与互联网金融 高科技与互联网 互联网金融科技创新 融势互联网科技 深圳卡尔迅互联网科技有限公司怎么样 互联网科技生活的内容 北京华百购互联网科技有限公司 来此购互联网科技有限公司 互联网金融科技展 互联网科技公司营业执照怎么办理 北京市互联网新科技 互联网科技包装股份有限公司上市 广州燕处互联网科技有限公司 科技互联网行业投资研究 北京天晋互联网科技有限公司 长沙易易互联网科技有限公司 云南咖啡 互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 互联网是第几次科技革命的成果 厦门比较好的科技互联网公司 成都互联网科技公司工作好不好 广州智享互联网科技 绵阳真晨互联网科技有限公司 科技发展第三阶段互联网时代 株洲百竞科技的互联网营销顾问
0