前言

  • 最近,用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路径更好测试一些。还有模板够强大路径没问题。
  • 另一个就是渲染数据了,因为以前写项目都是使用ajax json进行渲染传输,然后发现现在很多模板引擎依然盛行,然后就想着实战下模板引擎。本来想完全采用模板引擎 Model传输数据,后来发现有些场景真的还是用Ajax更好,更方便。

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

  1. thymleaf文件名为 xxx.html在teamplates文件夹下。要有对应的controller进行渲染
  2. 虽然为html后缀,但是有些和html还是不同的,需要加上固定前缀头,并且引入资源要用thymleaf的格式:th:href="@{xx/xx/.css}" th:src的js文件也是如此。
  3. 对应一些属性需要渲染时候,后台还是传统的Springmvc的Model,Modelmap,Modelandview三种map传值,前端thymleaf有自己的写法,比如渲染表单的value时候后端:model.addAttribute("msg","你好");在前端渲染在文本框value里时候:th:value="${msg}",渲染文本的而不是属性时候th:text="${msg}"即可
  4. 对于java的bean对象填入model里面时候即可渲染,对于List对象即可渲染,对于其他种类渲染可参考其他资料。
  5. 但是,thymleaf并不是适合所有场景,比如 对于这种只需要局部刷新,而不需要加载整个页面的,则用ajax最好了。如果每次都用model真的不知道多浪费资源和时间。
  6. 另外一点ajax好的地方就是利于缓存,因为界面总题样式不变,变得是部分数据,那么就可以将html页面缓存,每次打开的时间执行ajax就可以渲染数据,而模板引擎需要查询到后台数据才能加载出来,返回的是整个页面,效率也不如ajax。并且ajax更适合分工合作。而thymleaf更适合个人开发,或者不太熟悉ajax,js语法库的人使用。。
  7. 对于项目打包,建议打成war包,因为项目里有文件夹数据,打成war如果项目更新只改动更新部分而不会丢失数据。
  8. 另外附上一些功能图,管理端,客户端

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

  • 如果对后端、爬虫、数据结构算法等感性趣欢迎关注我的个人公众号交流:bigsai

Springboot制作小网盘系统(小项目)相关推荐

  1. 快来用网盘系统给小姐姐安个家吧!

    点击蓝字 关注我们 在数据时代,我们每天都在互联网上生成大量数据,同时也接收着大量数据. 随着图片.音乐.影视.课程越来越多,不管是手机.iPad 还是电脑,空间根本不够用,所以很多人会把文件存在各种 ...

  2. 基于C++的网盘系统项目开发教程

    项目资源下载 基于C++的网盘系统项目源码CSDN下载地址 基于C++的网盘系统项目源码GitHub下载地址 项目简介 本项目基于C++开发,整个项目采用C/S架构,使用Sqlite3数据库存储用户信 ...

  3. 坚果云与服务器同步数据,#网盘每日小技巧分享# 如何在坚果云和服务器之间更好地同步数据?...

    原标题:#网盘每日小技巧分享# 如何在坚果云和服务器之间更好地同步数据? 我们有很多用户利用坚果云在服务器之间同步数据,因为数据格式原因,出现了不少问题,影响用户体验. 其实,微软本身就推出了robo ...

  4. 外卖分销返佣分佣程序外卖cps小程序返利系统外卖项目优惠券返利

    外卖CPS红包小程序源码分享 外卖券外卖省省外卖探探美团饿了么外卖联盟优惠券小程序系统软件开发源码 美团/饿了么外卖CPS联盟返利公众号小程序裂变核心源码 今天和大家分享下外卖CPS项目,这个其实和做 ...

  5. 开源项目推荐-私人网盘系统项目

    开源项目推荐-私人网盘系统项目 参考网址: https://mp.weixin.qq.com/s/9QzQBAwf2f57PAuBZw6PXg 许多程序员都想搭建一个个人网盘,今天就和大家推荐一个备受 ...

  6. 【网盘搜索小程序完整源码】微信QQ双端通用

    本文转自:安好屋 本文链接:https://www.anhaowu.com/xcx/wangpanss.html ###一个微信QQ双端通用网盘搜索小程序 直接通过爬去第三方网站的搜索结果来实现搜索, ...

  7. 一款轻量级微服务架构网盘系统,你Get了吗

    一.前言 在gitee和github里面基本上找不到一款好用.功能完善.且开放源码的网盘系统,有一些可以免费试用但是只提供安装包,于是在利用业务时间开发了一套轻量级且易于上手的网盘系统,主要基于目前主 ...

  8. 网盘拉新项目的变现玩法解析!

    网盘拉新项目其实很早之前就有了,之前市场上主要是迅雷网盘拉新. 据我所知,现在有的人一天靠这个项目一天搞了几千. 简单说一下这个项目的底层逻辑吧. 点击添加图片描述(最多60个字)编辑 其实很简单,夸 ...

  9. 基于Hadoop的企业级网盘系统的研究与开发

    基于Hadoop的企业级网盘系统的研究与开发 Research and Development of Enterprise-class Online Storage System based on H ...

最新文章

  1. vue 非template模式_vue-template-compiler 还能这么用
  2. Cpp / checked_delete 原理
  3. 将字符串String str= “abc god 中国 java“ 反转每个单词 结果: “cba dog 国中
  4. mysql的to datetime_mysql-笔记-datetime
  5. Docker 学习4 Docker容器虚拟化网络概述
  6. windows10没有nfs服务_CentOS 7集群间实现NFS文件共享
  7. 「管理数学基础」4.1 模糊数学:模糊现象与模糊集、隶属函数、模糊集的运算、水平截集与分解定理
  8. 笔试编程题常用的一些技巧方法
  9. ICMP(网际控制报文协议)
  10. 智能语音电话机器人源码部署 mod 命令集
  11. 直通车测图需要满足哪些数据?
  12. pythonfor反向循环_python如何实现反向迭代
  13. Axure RP9 制作平台界面
  14. idea怎么设置成中文
  15. 【博弈论】【第一章】博弈论导论
  16. 冯·诺依曼--数学奇才计算机之父
  17. 软件项目实施原则规范
  18. 如何获取prezi免费使用权
  19. jdk17下载安装(Windows)
  20. android 心形上漂动画,PowerPoint Viewer制作一个漂亮心形飞出动画的操作教程

热门文章

  1. 2019天梯赛(总结-无题解)
  2. 现代密码学5.4--对哈希函数的攻击
  3. 近世代数--外直积--外直积是什么?关于阶的性质?
  4. optee中断处理的介绍(概念篇)
  5. update yum 到指定版本_yum语法及常用命令汇总
  6. 快速定位关键爆破点的几种方法
  7. easy_Maze 梅津美治郎 寒假逆向生涯(16/100)
  8. Mysql 查询一天中每半小时记录的数量
  9. SQL语言之事务处理语言(Oracle)
  10. JMeter的目录结构