张文龙 吴林辉 杨晨耀 蒋卫祥
摘要:针对当前Web网盘系统存在的问题,提出了利用SSM+vue的技术架构,进行技术方案设计。该文首先通过UML的用例图分析了Web网盘系统的需求;其次应用SSM框架设计了系统的架构;前端使用vue实现前后端分离,最后介绍了系统的实现。SSM +vue框架能简化Web网盘系统的开发,可以有效地降低各层之间的耦合度,提高系统的可维护性。
关键词:文件上传;SSM;vue,Web网盘系统;系统设计
中图分类号:TP393文献标识码:A
文章编号:1009-3044(2019)34-0062-02
1 概述
网盘系统的主要功能是上传和下载用户指定的文件或者文件夹,他的基本结构是上传一分享一下载,使用者通过注册获取用户账号,即可使用该功能,并且,可以分享文件给其他用户下载使用。
目前,网盘系统大多都是商业运营,能够自由搭建并且使用的系统少之又少,并且商用网盘系统大多需要收费,还存在限速问题,另外,大部分网盘系统技术都基于C/S(Client Server)架构,这种架构的软件的最大缺点是升级麻烦,用户使用不方便,随着Internet网络技术的发展,这种弊端越来越明显,我们使用SSM技术开发的网盘项目基于Web技术,可以直接通过浏览器使用,非常方便,下载速度很快,适合公司学校团队使用。
SSM (SpringMVC-Spring-Mybatis)是典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和持久层。SSM灵活的配置方法,敏捷的开发模式,典型的MVC框架,非常适合完成基于B/S的信息系统开发,并且采用vue前端技术实现前后端分离,有利于后期维护和升级。
2 Web网盘系统分析
通过对网盘系统的需求调研,得到所需要的功能需求,系统用例如图1所示。
Web网盘系统主要的功能模块为:注册登录功能、上传文件或者文件夹、下载文件、分享文件链接、文件管理、搜索文件功能。
注册登录功能:提供用户的登录和注册功能。注册功能是为了使用户得到属于自己的账号,方便以后的功能使用,登录功能可以进入系统主页面;上传文件或者文件夹:通过浏览器使用Web技术对用户选中的文件或者文件夹进行上传;下载文件:主要提供文件的下载;分享文件链接:用户将上传的文件或者文件夹形成文件链接,分享给他人进行下载;文件管理:系统提供文件管理功能,可以自动将所有文件分为各种类型的文件,方便用户直接查看;搜索文件:系统提供文件检索功能,用户通过搜索栏可以直接搜索需要的文件。
3 Web网盘系统设计
系统采用SSM +vue框架技术,该框架将整个系统分为表现层、业务层、数据持久层。SSM框架整合可以充分利用三个框架的优点,提高组件的可复用性,降低各层之间的耦合度,有利于系统的可维护性和扩展等。表现层是SpringMVC,业务层是Spring,持久层是Mybatis。每个层在功能上职责明确,不应该与其他层混合,各层通过通信接口相互联系,整合框架如图2所示。
SSM框架中业务流程为:
1)表示层
表示层是用户与系统直接进行交互的界面,也是唯一直接面向使用者的接口。本系统采用SpringMVC实现表示层,负责收集用户请求并返回处理结果页面。
2)业务层
业务层是由业务逻辑对象组成,是系统的核心,处于中心的位置。业务逻辑层实现并提供了系统所需要的业务逻辑方法。本系统由Spring实现业务逻辑层,并负责整体框架的整合。
3)持久层
持久层由数据访问对象(Data Access Objects)组成,这些数据访问对象提供对领域(Domain Object)基本的创建、查询、修改和删除等操作。本系统有Mybatis实现数据持久层,为业务逻辑层数据存取的方法,实现数据库数据的增、删、改、查操作。
4 Web网盘系统实现
本文以文件上传为例说明系统的实现过程。该模块的功能是用户选择文件、文件路径保存到数据库中,文件保存到磁盘中。
4.1 表示层实现
上传文件功能通过用户选择文件点击上传后后提交给SpringMVC的ProductController(表现层)处理,处理结束后重新刷新文件列表。
SpringMVC的表现层如下:
@RestController
@RequestMapping(“/api/vl”)
public class ProductController extends AbstractApiCon-trollerf
@Autowired
private ProductServiceproductService;
// 文件上传
@RequestMapping(value=”/pro/upload/file/{userldn
public ApiResponseObjectfileUpload(@RequestParam(”one-File”) MultipartFile file, HttpServletRequest request,
@PathVariable(”userld”) int userld){
String path= request.getSessionO.getServletContextO.getReal-Path(”resources/upload”)+”/”+userld;
File filePath= new File(path);
System.out.println(”文件保存路徑:”+path);