Springboot制作小网盘系统(小项目)

简介: 最近,用Springboot thymleaf ajax实现了一个小型网盘系统,记录其中心得。

前言



  • 最近,用Springboot thymleaf ajax实现了一个小型网盘系统,记录其中心得。


项目完成背景



有个堂姐做食品公司采购部门,经常收到客户发来的质检,规格书,厂检等等小文件信息,在邮箱中储存时候自己查看起来比较麻烦,想让我帮她解决优化下,恰好刚刚掌握些写网页小知识就答应了。


项目环境:


  • 前端:html thymleaf(混合) layui jquery
  • 后端:Springboot Mybatis mysql5 (后续要加入安全框架,我自己就简单用session了)


项目步骤:


  1. 分析角色:管理员,客户
  2. 分析操作:上传文件,(花式)查看(下载)文件,(花式)查看用户,操作信息(管理员)。
  3. 建库,写基本增删改查。Junit单元测试方法。
  4. 测试文件上传和下载(最重要的是上传的路径要唯一且能找到),因为文件上传以前写过(博客里javaweb里模板可用),直接移植。
  5. 修改前端,写前端(被坑了挺久)
  6. 渲染数据(也是我很纠结的地方)
  7. 测试,打war包上传测试


这里面有两个比较坑的地方,


  • 一是Springboot上传文件到相对路径的时候因为Springboot是内置tomcat,路径不固定,这点很不友好,而SSM传统项目相对来说webapp路径更好测试一些。还有模板够强大路径没问题。
  • 另一个就是渲染数据了,因为以前写项目都是使用ajaxjson进行渲染传输,然后发现现在很多模板引擎依然盛行,然后就想着实战下模板引擎。本来想完全采用模板引擎 Model传输数据,后来发现有些场景真的还是用Ajax更好,更方便。


因为自己是初学者,将thmyleaf基础使用和注意点记录下来。


  1. thymleaf文件名为 xxx.html在teamplates文件夹下。要有对应的controller进行渲染


2019030619035152.png


  1. 虽然为html后缀,但是有些和html还是不同的,需要加上固定前缀头,并且引入资源要用thymleaf的格式:th:href="@{xx/xx/.css}" th:src的js文件也是如此。


  1. 对应一些属性需要渲染时候,后台还是传统的Springmvc的Model,Modelmap,Modelandview三种map传值,前端thymleaf有自己的写法,比如渲染表单的value时候后端:model.addAttribute("msg","你好");在前端渲染在文本框value里时候:th:value="${msg}",渲染文本的而不是属性时候th:text="${msg}"即可


  1. 对于java的bean对象填入model里面时候


20190306192949253.png


即可渲染,对于List对象即可渲染,对于其他种类渲染可参考其他资料。


20190306193054815.png


  1. 但是,thymleaf并不是适合所有场景,比如


2019030619350527.png


对于这种只需要局部刷新,而不需要加载整个页面的,则用ajax最好了。如果每次都用model真的不知道多浪费资源和时间。


  1. 另外一点ajax好的地方就是利于缓存,因为界面总题样式不变,变得是部分数据,那么就可以将html页面缓存,每次打开的时间执行ajax就可以渲染数据,而模板引擎需要查询到后台数据才能加载出来,返回的是整个页面,效率也不如ajax。并且ajax更适合分工合作。而thymleaf更适合个人开发,或者不太熟悉ajax,js语法库的人使用。


  1. 对于项目打包,建议打成war包,因为项目里有文件夹数据,打成war如果项目更新只改动更新部分而不会丢失数据。


  1. 另外附上一些功能图,管理端,客户端


20190306194519786.png


20190306194656550.png


至于项目比较烂,就不贴了。因为自己初写,不善于前端,还用的之前的layui模板二次开发。有点小混乱。 ?

目录
相关文章
|
2月前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
329 1
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
3月前
|
存储 安全 Java
打造智能合同管理系统:SpringBoot与电子签章的完美融合
【10月更文挑战第7天】 在数字化转型的浪潮中,电子合同管理系统因其高效、环保和安全的特点,正逐渐成为企业合同管理的新宠。本文将分享如何利用SpringBoot框架实现一个集电子文件签字与合同管理于一体的智能系统,探索技术如何助力合同管理的现代化。
132 4
|
3月前
|
前端开发 Java Apache
SpringBoot实现电子文件签字+合同系统!
【10月更文挑战第15天】 在现代企业运营中,合同管理和电子文件签字成为了日常活动中不可或缺的一部分。随着技术的发展,电子合同系统因其高效性、安全性和环保性,逐渐取代了传统的纸质合同。本文将详细介绍如何使用SpringBoot框架实现一个电子文件签字和合同管理系统。
133 1
|
3月前
|
文字识别 安全 Java
SpringBoot3.x和OCR构建车牌识别系统
本文介绍了一个基于Java SpringBoot3.x框架的车牌识别系统,详细阐述了系统的设计目标、需求分析及其实现过程。利用Tesseract OCR库和OpenCV库,实现了车牌图片的识别与处理,确保系统的高准确性和稳定性。文中还提供了具体的代码示例,展示了如何构建和优化车牌识别服务,以及如何处理特殊和异常车牌。通过实际应用案例,帮助读者理解和应用这一解决方案。
|
2月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
53 0
|
3月前
|
机器学习/深度学习 移动开发 自然语言处理
基于人工智能技术的智能导诊系统源码,SpringBoot作为后端服务的框架,提供快速开发,自动配置和生产级特性
当身体不适却不知该挂哪个科室时,智能导诊系统应运而生。患者只需选择不适部位和症状,系统即可迅速推荐正确科室,避免排错队浪费时间。该系统基于SpringBoot、Redis、MyBatis Plus等技术架构,支持多渠道接入,具备自然语言理解和多输入方式,确保高效精准的导诊体验。无论是线上医疗平台还是大型医院,智能导诊系统均能有效优化就诊流程。
|
3月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
198 1
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
131 62
|
20天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
101 13