基于SSM框架+vue的Web网盘系统的设计与实现
来源:用户上传
作者:
摘要:针对当前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); if (!filePath.exists0){
System.out.println(“目录不存在,创建目录”+filePath);
filePath.mkdirs0;
)
Product product= new Product0;
product.setUserld(userld);
product.setLevel(l);
//获取原始文件名称
String fileNamel= file.getOriginaIFilenameO;
product.setProductName(fileNamel);
inti=1:
//获取文件前缀名
String tname= fileNamel.substring(0, fileNamel.lastlndexOf(”.”));
//获取文件类型
String type= fileNamel.substring(fileNamel.lastlndexOf(".”)+1);
System. out. println(productService. fileNarneExist(product)+”:tme?”1:
while (productService.fileNameExist(product》{
fileNamel= tname+”(”+i+”).”+type;
i++;
product.setProductName(fileNamel);
System.out.println(product.getProductName0+":Mingzi“);
)
product.setProductName(fileNamel);
product.setUploadTime(new Date0);
String uploadPath=”/”+fileNamel;
product.setUploadPath(uploadPath);
product.setType(type);
File targetFile= new File(path, fileNamel);
try(
file.transferTo(targetFile);
if (productService.uploadFile(product》(
return reponsejSON(ApiResponseEnum. SUCCESS. getCode0,ApiResponseEnum.SUCCESS.getName0, true);
¨catch (IOException e)(
System.out.println(”保存文件错误……”);
e.printStackTrace0;
)
return reponsejSON(ApiResponseEnum. FAIL. getCode0,ApiResponseEnum.FAIL.getName0, false);
)
4.2 业务层的实现
上传文件的业务层处理文件上传过程的业务逻辑,作为中间层起到一个连接表现层与持久层的作用,向上接收用户名称、文件数据,向下可以接收和传递持久层的数据。通过业务层将表示层与数据处理分离开来,可以降低系统的耦合度。在本系统中主要利用Spring框架构建业务层,通过使用注解的方式调用。
public interface ProductService{
public boolean uploadFile(Product product);
)
4.3 持久层的实现
权限管理持久化实现通过RightDAOImpl类实现,实现代码如下:
@Service
public class ProductServicelmpl implements ProductService(
@Autowired
private ProductMapperproductMapper;
@Override
public boolean uploadFile(Product product){
boolean flag=false;
product.setUploadTime(new Date0);
if(productMapper.uploadFile(product)! =0){
flag=true;
】
return flag;
】
】
5 结束语
基于SSM架构设计开发的Web网盘系统通过实际试运行,表现良好,证明了SSM整合架构是一个行之有效的轻量级JavaEE应用系统解决方案。SSM框架通过vue实现网页与用户交互,通过SpringMVC负责在表示层中处理页面的请求和转发工作;通过Spring容器管理机制负责在业务层处理业务逻辑工作;通过Mybatis完成在持久层与数据库的交互工作。这样形成一个结构良好、功能强大、层次清晰的框架体系。SSM框架能简化系统的开发,可以有效地降低各层之间的耦合度,提高系统的可维护性。
參考文献:
[1]张宏升.“JavaEE软件技术”课程的“2+2”创新教学模式研究[J].现代信息科技,2017,1(4):78-80.
[2]唐权.SSM框架在JavaEE教学中的应用与实践[J].福建电脑,2017,33(12):93-94,61.
[3]李杉,贾彦平,达虎.Mybatis逆向工程在JavaEE中的应用[J].通讯世界,2017(24):342.
【通联编辑:闻翔军】
收稿日期:2019 -10 -16
基金项目:本文受江苏省高水平高等职业院校建设项目资助
作者简介:张文龙(1999-),男,江苏宿迁人,研究方向为软件工程;吴林辉(1997-),男,福建南平人,研究方向为计算机视觉与软件工程;杨晨耀(1999-),男,江苏涟水人,研究方向为软件工程;蒋卫祥(1972-),男,江苏兴化人,副教授,研究生,研究方向为软件工程。
转载注明来源:https://www.xzbu.com/8/view-15122746.htm