您好, 访客   登录/注册

基于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